1

根据此链接返回子节点列表。在我的测试中,这似乎忽略了文本节点。这个对吗?

令我困惑的是 firstChild 有效,但孩子列表为零。

在 Firefox 20.0.1 中测试。

这是我的测试代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<title></title>
<script>

function checktable() {
    var mytable = document.getElementById("mytable");

    var cells = mytable.rows[0].cells;

    for (var i = 0; i < cells.length; i++) {
        console.log("firstChild.nodeValue:", cells[i].firstChild.nodeValue);
        console.log("firstChild.data:",cells[i].firstChild.data);
        console.log("children.length:",cells[i].children.length);
    }
}


function checkdiv() {
    var mydiv = document.getElementById("mydiv");
    console.log("firstChild.nodeValue:", mydiv.firstChild.nodeValue);
    console.log("firstChild.data:",mydiv.firstChild.data);
    console.log("children.length:",mydiv.children.length);
}
</script>
<style>
</style>
</head>

<body>

<table id="mytable">
<tr>
<td>Blob</td>
<td>Blab</td>
<td><a href="http://stackoverflow.com">Link</a></td>
</tr>
</table>

<div id="mydiv">
Blib
</div>

<button onclick="checktable()">Check table</button>
<button onclick="checkdiv()">Check div</button>

</body>
</html>
4

1 回答 1

1

你想要.childNodes,没有.children

前者是一种Node列出子节点的方法。后者是一种Element列出子元素的方法,因此在某些情况下更可取。

于 2013-05-08T07:11:02.243 回答