zoukankan      html  css  js  c++  java
  • javascript 表格集合rows cells运用

    DOM api里关于表格集合的使用

      rows:表示表格所有行的集合

      cells:表示行内单元格的集合

    效果:

      

    代码:

      1 <style>
      2 *{ margin:0; padding:0;}
      3 #tab td{    
      4     padding: 5px 0;
      5     line-height: 22px;
      6     text-align: center;
      7 }
      8 </style>
      9 
     10 <table width="500" border="0" cellspacing="0" cellpadding="0" id="tab">
     11   <tr>
     12     <td>&nbsp;</td>
     13     <td>&nbsp;</td>
     14     <td>&nbsp;</td>
     15     <td>&nbsp;</td>
     16     <td>&nbsp;</td>
     17     <td>&nbsp;</td>
     18     <td>&nbsp;</td>
     19     <td>&nbsp;</td>
     20   </tr>
     21   <tr>
     22     <td>&nbsp;</td>
     23     <td>&nbsp;</td>
     24     <td>&nbsp;</td>
     25     <td>&nbsp;</td>
     26     <td>&nbsp;</td>
     27     <td>&nbsp;</td>
     28     <td>&nbsp;</td>
     29     <td>&nbsp;</td>
     30   </tr>
     31   <tr>
     32     <td>&nbsp;</td>
     33     <td>&nbsp;</td>
     34     <td>&nbsp;</td>
     35     <td>&nbsp;</td>
     36     <td>&nbsp;</td>
     37     <td>&nbsp;</td>
     38     <td>&nbsp;</td>
     39     <td>&nbsp;</td>
     40   </tr>
     41   <tr>
     42     <td>&nbsp;</td>
     43     <td>&nbsp;</td>
     44     <td>&nbsp;</td>
     45     <td>&nbsp;</td>
     46     <td>&nbsp;</td>
     47     <td>&nbsp;</td>
     48     <td>&nbsp;</td>
     49     <td>&nbsp;</td>
     50   </tr>
     51   <tr>
     52     <td>&nbsp;</td>
     53     <td>&nbsp;</td>
     54     <td>&nbsp;</td>
     55     <td>&nbsp;</td>
     56     <td>&nbsp;</td>
     57     <td>&nbsp;</td>
     58     <td>&nbsp;</td>
     59     <td>&nbsp;</td>
     60   </tr>
     61   <tr>
     62     <td>&nbsp;</td>
     63     <td>&nbsp;</td>
     64     <td>&nbsp;</td>
     65     <td>&nbsp;</td>
     66     <td>&nbsp;</td>
     67     <td>&nbsp;</td>
     68     <td>&nbsp;</td>
     69     <td>&nbsp;</td>
     70   </tr>
     71   <tr>
     72     <td>&nbsp;</td>
     73     <td>&nbsp;</td>
     74     <td>&nbsp;</td>
     75     <td>&nbsp;</td>
     76     <td>&nbsp;</td>
     77     <td>&nbsp;</td>
     78     <td>&nbsp;</td>
     79     <td>&nbsp;</td>
     80   </tr>
     81   <tr>
     82     <td>&nbsp;</td>
     83     <td>&nbsp;</td>
     84     <td>&nbsp;</td>
     85     <td>&nbsp;</td>
     86     <td>&nbsp;</td>
     87     <td>&nbsp;</td>
     88     <td>&nbsp;</td>
     89     <td>&nbsp;</td>
     90   </tr>
     91 </table>
     92 <script>
     93 var tab=document.getElementById("tab");
     94 for(var i=0,len=tab.rows.length;i<len;i++){
     95     for(var j=0,jlen=tab.rows[i].cells.length;j<jlen;j++){
     96         tab.rows[i].cells[j].innerHTML="("+i+","+j+")";
     97         tab.rows[i].cells[j].point=[i,j];//没有用闭包的,用自身自定义属性来完成传值
     98         tab.rows[i].cells[j].onmouseover=function(){
     99             if(this.point[0]&&this.point[1]){
    100                 tab.rows[0].cells[this.point[1]].style.background="#f00";
    101                 tab.rows[this.point[0]].cells[0].style.background="#f00";
    102                 this.style.background="#ff0";
    103             }
    104         }    
    105         tab.rows[i].cells[j].onmouseout=function(){
    106             if(this.point[0]&&this.point[1]){//如果不是头行,头列
    107                 tab.rows[0].cells[this.point[1]].style.background="";
    108                 tab.rows[this.point[0]].cells[0].style.background="";
    109                 this.style.background="";
    110             }    
    111         }
    112     }
    113 }
    114 
    115 </script>

    使用闭包来保存变量值:(只修改JS代码其它部分相同)

    <script>
    var tab=document.getElementById("tab");
    for(var i=0,len=tab.rows.length;i<len;i++){
        for(var j=0,jlen=tab.rows[i].cells.length;j<jlen;j++){
            tab.rows[i].cells[j].innerHTML="("+i+","+j+")";
            //利用闭包产生作用域保存变量的值
            (function(row,col){
                tab.rows[row].cells[col].onmouseover=function(){
                    if(row&&col){//row!=0,col!=0
                        tab.rows[0].cells[col].style.background="#f00";
                        tab.rows[row].cells[0].style.background="#f00";
                        this.style.background="#ff0";
                    }
                }    
                tab.rows[row].cells[col].onmouseout=function(){
                    if(row&&col){
                        tab.rows[0].cells[col].style.background="";
                        tab.rows[row].cells[0].style.background="";
                        this.style.background="";
                    }
                }  
            })(i,j)
            
        }
    }
    
    </script>

    结束:

      这个效果实现也可以用td的标签集合,然后计算对应单元格对应的行列。这里只是为了运用浏览器提供的表格的集合。

  • 相关阅读:
    LeetCode OJ 107. Binary Tree Level Order Traversal II
    LeetCode OJ 116. Populating Next Right Pointers in Each Node
    LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
    LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode OJ 98. Validate Binary Search Tree
    老程序员解Bug的通用套路
    转载 四年努力,梦归阿里,和大家聊聊成长感悟
    转载面试感悟----一名3年工作经验的程序员应该具备的技能
    Web Service和Servlet的区别
    关于spring xml文件中的xmlns,xsi:schemaLocation
  • 原文地址:https://www.cnblogs.com/wengxuesong/p/3077693.html
Copyright © 2011-2022 走看看