这是我项目的一小段代码。好吧,这里只是我正在获取表的第一行元素的 id,但是获取 div 的 id 和选择标签时出现错误?有人可以帮助我吗?
<html>
<head>
<script>
function add(tableID) {
var table = document.getElementById(tableID);
var colCount = table.rows[0].cells.length;
alert("cell length "+colCount);
for(var i=0; i<colCount; i++) {
alert(table.rows[0].cells[i].childNodes[0].id);
}
}
</script>
</head>
<body>
<table border="1" id="dataTable" >
<tr>
<td><INPUT type="checkbox" id="cb" name="chk[]" disabled="true"/></td>
<td><input type="text" id="txt" name="t" size="3" maxlength="3" readonly="true" value="1"></td>
<td>
<select id='slct'>
<option value='-1' selected>- - - - - Select - - - - -</option>
<option value="0">xyz</option>
</select>
</td>
<td>
<div id="div">qwerty</div>
</td>
</tr>
</table>
<br>
<button onclick="add('dataTable')">show</button>
</body>
</html>
最佳答案
标签之间的任何字符,甚至空格,都是 HTML 文本节点(一行中的多个非标签字符全部组合成一个节点)。这意味着第三个和第四个 TD 的第一个(也是最后一个)子节点都是文本节点(只有空格)。
table.rows[0].cells[0].childNodes.length === 1
table.rows[0].cells[1].childNodes.length === 1
table.rows[0].cells[2].childNodes.length === 3
table.rows[0].cells[3].childNodes.length === 3
如果您将 HTML 修改为这样...
<td><select id='slct'>
<option value='-1' selected>- - - - - Select - - - - -</option>
<option value="0">xyz</option>
</select></td>
<td><div id="div">qwerty</div></td>
您将从 JavaScript 中获得预期的行为。
关于javascript - 无法识别DIV id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24842977/