js如何實現動態點擊改變單元格顏色?


js如何實現動態點擊改變單元格顏色?

一、總結

1、通過table的rows屬性,遍歷表格所有行,然后通過cells屬性,遍歷每一行中的單元格。

2、遍歷的過程中,動態的為每一個單元格定義單擊事件,改變單元格的背景色

 

 

二、js如何實現動態點擊改變單元格顏色?

1、動態改變單元格背景色案例

  • 實例描述:

    單擊單元格后改變其背景顏色,再次單擊則恢復之前樣式

  • 案例要點:
    1. 通過table的rows屬性,遍歷表格所有行,然后通過cells屬性,遍歷每一行中的單元格。
    2. 遍歷的過程中,動態的為每一個單元格定義單擊事件,改變單元格的背景色

 

 

2、用到的表格屬性和方法

Table 對象集合
  • cells[] 返回包含表格中所有單元格的一個數組。

    語法:tableObject.cells[]

  • rows[] 返回包含表格中所有行的一個數組。

    rows 集合返回表格中所有行的一個數組。該集合包括 thead、tfoot 和 tbody 中定義的所有行。

 

 

三、代碼

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>表格專題</title>
 6 </head>
 7 <body>
 8     <table id="tab" border="1">
 9     <caption>表格名稱</caption>
10     <thead>
11         <tr>
12             <th colspan="3">標題1</th>
13         </tr>
14     </thead>
15     <tbody>
16         <tr>
17             <td>單元格11</td>
18             <td>單元格12</td>
19             <td>單元格13</td>
20         </tr>
21         <tr>
22             <td>單元格21</td>
23             <td>單元格22</td>
24             <td>單元格23</td>
25         </tr>
26         <tr>
27             <td>單元格31</td>
28             <td>單元格32</td>
29             <td>單元格33</td>
30         </tr>
31         </tbody>
32         <tfoot><td>備注:</td><td colspan="2"></td></tfoot>
33     </table>
34     <script type="text/javascript">
35     /*
36         var tab=document.getElementById('tab') //獲取表格元素
37         var rows=tab.rows; //返回包含表格中所有行的一個數組。
38         var rlen=rows.length;
39         alert(rlen)
40         //var cells=tab.cells;
41         //var clen=cells.length //這種寫法會出錯
42         cells=rows[1].cells //某一行的單元格
43         alert(cells.length)
44         */
45         function tabCell(){
46          var tab=document.getElementById('tab')
47          var rows=tab.rows;
48          var rlen=rows.length;
49          for (var i = 1; i <rlen; i++) { //遍歷所有行
50              var cells=rows[i].cells; //得到這一行的所有單元格
51              for (var j = 0; j < cells.length; j++) 
52              {
53                  //給每一個單元格添加click事件
54  cells[j].onclick=function(){ 55                      if (this.style.background=='') {
56                      this.style.background='green'
57                      }else{
58                          this.style.background=''
59                      }
60                  }
61                  
62              }
63          }
64         }
65         tabCell()
66     </script>
67 </body>
68 </html>

 

四、測試題-簡答題

1、如何動態給元素添加點擊事件?

解答:cells[j].onclick=function(){函數體}。

 

2、如何動態的獲取元素的背景屬性?

解答:if (this.style.background=='')。

 

3、table表格的行(rows)屬性和列屬性(或者說單元格屬性cells)的關系?

解答:行包含單元格(cells是rows的屬性),var cells=rows[i].cells; //得到這一行的所有單元格。

 

4、如何動態的獲取元素?

解答:var tab=document.getElementById('tab')。

 

5、如何動態從表格中取到某個單元格的dom對象?

解答:通過table的rows屬性,遍歷表格所有行,然后通過cells屬性,找到我們需要的單元格。

 

6、如何判斷js中某個標簽是否設置了背景色屬性?

解答:獲取標簽對應的dom對象,然后判斷dom對象的style的background屬性是否為空字符串。if (this.style.background=='')。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM