zoukankan      html  css  js  c++  java
  • js table隔行变色

      // this function is need to work around 
      // a bug in IE related to element attributes
      function hasClass(obj) {
         var result = false;
         if (obj.getAttributeNode("class") != null) {
             result = obj.getAttributeNode("class").value;
         }
         return result;
      }   

     function stripe(id) {

        // the flag we'll use to keep track of 
        // whether the current row is odd or even
        var even = false;
      
        // if arguments are provided to specify the colours
        // of the even & odd rows, then use the them;
        // otherwise use the following defaults:
        var evenColor = arguments[1] ? arguments[1] : "#fff";
        var oddColor = arguments[2] ? arguments[2] : "#eee";
      
        // obtain a reference to the desired table
        // if no such table exists, abort
        var table = document.getElementById(id);
        if (! table) { return; }
        
        // by definition, tables can have more than one tbody
        // element, so we'll have to get the list of child
        // <tbody>s 
        var tbodies = table.getElementsByTagName("tbody");

        // and iterate through them...
        for (var h = 0; h < tbodies.length; h++) {
        
         // find all the &lt;tr&gt; elements... 
          var trs = tbodies[h].getElementsByTagName("tr");
          
          // ... and iterate through them
          for (var i = 0; i < trs.length; i++) {

            // avoid rows that have a class attribute
            // or backgroundColor style
            if (!hasClass(trs[i]) && ! trs[i].style.backgroundColor) {
     
             // get all the cells in this row...
              var tds = trs[i].getElementsByTagName("td");
            
              // and iterate through them...
              for (var j = 0; j < tds.length; j++) {
            
                var mytd = tds[j];

                // avoid cells that have a class attribute
                // or backgroundColor style
                if (! hasClass(mytd) && ! mytd.style.backgroundColor) {
            
                  mytd.style.backgroundColor = even ? evenColor : oddColor;
                  
                }
              }
            }
            // flip from odd to even, or vice-versa
            even =  ! even;
          }
        }
      }
  • 相关阅读:
    计数排序
    桶排序
    给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。
    leetcode349 python3 112ms 求两个数组的交集
    leetcode852 C++ 20ms 找最高峰 序列先增后减
    leetcode665 C++ 36ms 非递减数列 这题没啥意思
    leetcode414 C++ 4ms 第三大的数字
    C++ 堆排序 以及用堆排序解决topk问题
    leetcode628 python3 124ms 三个数字的最大乘积
    leetcode26 C++ 20ms 删除排序数列中的重复元素
  • 原文地址:https://www.cnblogs.com/shihao/p/2215788.html
Copyright © 2011-2022 走看看