qq_枫_
2016-11-07 13:02
<!DOCTYPE html>
<html>
<head>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<table border="1" width="50%" id="table">
<tr>
<th>学号</th>
<th>姓名</th>
<th>操作</th>
</tr>
<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
</tr>
<tr>
<td>xh002</td>
<td>刘小芳</td>
<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
</tr>
</table>
<script type="text/javascript">
var mytr=document.getElementById("table").childNodes;
document.write(mytr.length);
</script>
</body>
</html>
自己看审查元素,你写得不标准,浏览器给你加个tbody,还有一个一个子元素应该是浏览器给它加了个换行符。
我们在html上这样写的话是长度是3个(下图)
而这样写的话长度是1(下图)
总之:反正换行符是算一个的。与其用childNodes这种方式不如用getElementByTagName("tr")。
浏览器给你的代码加了tbody之后,像是td tr 就不再是table的子节点,而是tbody的子节点了
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题