簡體   English   中英

使用javascript中的類選擇表格單元格

[英]Select table cell using class in javascript

有沒有一種方法可以通過使用單元格上使用的“類”來選擇表單元格。 好例子勝過1000字...

如何使用javascript選擇元素以僅在表中選擇.redcell 我需要分別為每個td插入函數,因此td .redcell和索引一樣不是解決方案。

 .redcell {background-color: red} 
 <table> <tr> <td> 1</td> <td>2</td> <td class="redcell">3</td> <td>4</td> </tr> <tr> <td> 1</td> <td class="redcell">2</td> <td>3</td> <td>4</td> </tr> </table> <div class="redcell">don't select me</div> 

您可以使用querySelectorAll() 演示

var cell = document.querySelectorAll('table td.redcell');
for (var i = 0; i < cell.length; i++) {
  cell[i].style.color = 'red';
}

更新:您可以像這樣向每個單元格添加addEventListener

 var cell = document.querySelectorAll('table td.redcell'); cell[0].addEventListener('click', function() { this.style.color = 'red'; }); cell[1].addEventListener('click', function() { this.style.color = 'green'; }) 
 <table> <tr> <td>1</td> <td>2</td> <td class="redcell">3</td> <td>4</td> </tr> <tr> <td>1</td> <td class="redcell">2</td> <td>3</td> <td>4</td> </tr> </table> <div class="redcell">don't select me</div> 

而不是遍歷包含redcell類的每個元素,您應該使用委托。 在這種情況下,您不需要為動態添加的<td>添加另一個事件偵聽器,而且代碼看起來更簡潔。

將單擊事件偵聽器添加到<td>的祖先元素之一。 在這里,祖先元素可以是<table> 當您單擊<td> ,將調用click事件處理程序。 通過event.target查找單擊的元素信息,如果event.target為<td>並具有redcell類,則執行您的邏輯。

看到這個演示

在jQuery中,您可以使用以下選擇器選擇帶有redcell類的td元素:

$("td.redcell")

它相當於純JS:

document.querySelectorAll('td.redcell');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM