10

标题应该很好地描述了我的问题。这是我的代码。

<div id="adiv"><text>Some text</text></div>    
<script type="text/javascript">
function vb(){
alert(document.getElementById("adiv").firstChild.nodeValue); //returns null
}
</script>
<input type="button" onclick="vb();" value="get"/>

问题出在哪里。。?

4

3 回答 3

18

为了获取元素节点的 [merged] 文本内容:

function vb(){
var textnode = document.getElementById("adiv").firstChild;
alert(textnode.textContent || textnode.innerText);
}

为了获取文本节点的文本内容:

function vb(){
alert(document.getElementById("adiv").firstChild.firstChild.nodeValue);
}
于 2010-10-20T12:29:05.833 回答
13

您缺少第一个孩子:

alert(document.getElementById("adiv").firstChild.firstChild.nodeValue);

(我知道这听起来很奇怪,但这就是文本节点的工作方式)

于 2010-10-20T12:22:56.380 回答
-2

<text>IE 7 不支持节点。

于 2010-10-20T13:10:09.310 回答