我有一张桌子。我想要if / else语句,如果td在表中,则将变量x添加92.
这是我的代码,但显然if / else并不是我想要的。
//Html
<table id="Tableleft">
<tr>
<td id="92">Text 1</td>
</tr>
</table>
//Javascript
var x = 0
if ( document.getElementByID('92')) {
//Help Here Please
}
答案 0 :(得分:1)
使用elem.parentNode
迭代 DOM树以查看祖先是否为<table>
。
我对的要求的定义非常宽容“如果TD在表格中”,你可能想要更严格(例如只允许<tr>
, <tbody>
,<thead>
,<tfoot>
和<table>
作为+92
行动的有效祖先。
var x = 0,
td = document.getElementByID('92'),
e; // we'll use this in our loop
if (td) { // `td` is not `null` -> we found a node with _id_ `92`
e = td;
while (e = e.parentNode) { // iterate up the DOM tree
if (e.tagName === 'TABLE') { // the `td` node has an ancestor `<table>`
x += 92;
break;
}
}
}
使用普通数字作为 id属性可能会产生意外结果。为获得最佳效果,请将第一个字符设为a-zA-Z
,并避免在选择器中使用具有特殊含义的字符.#:@