如何检查html单元格中的按钮?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (127)

是否有方法检查html表中的单元格是否包含按钮?这个单元格将只包含一个按钮,或者什么都不包含。

目前,我正在使用

if (table.rows[1].cells[0].value === undefined) {

然而,虽然检测显示没有按钮,实际上有一个。

提问于
用户回答回答于

你可以用firstElementChildlastElementChild

var cell = table.rows[1].cells[0];
if(cell.firstElementChild                                               // if this cell has a child
   && cell.firstElementChild === cell.lastElementChild                  // if that child is the only child
   && cell.firstElementChild.tagName.toLowerCase() === "button") {      // if that child is a button
    // ok
}

注:这将跳过文本节点这样的非元素子元素。它只检查元素。

用户回答回答于

你可以检查一下table.rows[1].cells[0].children[0].nodeName等于"BUTTON"查看表的第二行的第一个单元格的第一个子单元格是否是一个按钮。

<table id="table">
<tr><td>s</td></tr>
<tr><td><button>Button
</button></td></tr>
</table>
<script>
var table = document.getElementById('table');
if(table.rows[1].cells[0].children[0]&&table.rows[1].cells[0].children[0].nodeName=="BUTTON"){
console.log("Table row 2 cell 1 contains a button element");
} else {
console.log("Table row 2 cell 1 does not contain a button element");
}
if(table.rows[0].cells[0].children[0]&&table.rows[0].cells[0].children[0].nodeName=="BUTTON"){
console.log("Table row 1 cell 1 contains a button element");
} else {
console.log("Table row 1 cell 1 does not contain a button element");
}
</script>

扫码关注云+社区

领取腾讯云代金券