Javascript nodeValue返回null(深入理解)
其思想是控制台日志节点值。但它不返回名称,而是返回null。我不明白为什么,因为代码对我来说很好。所以,我想知道发生了什么。我发现了如何使它工作,但我不明白为什么我的代码不工作。代码和结果: HTML 结果:Javascript nodeValue返回null(深入理解),javascript,nodevalue,Javascript,Nodevalue,其思想是控制台日志节点值。但它不返回名称,而是返回null。我不明白为什么,因为代码对我来说很好。所以,我想知道发生了什么。我发现了如何使它工作,但我不明白为什么我的代码不工作。代码和结果: HTML 结果: 因为Done在您的li中是一个节点,所以文本不仅仅是HTML标记 更新后的代码: let listNode=document.body.children[1].children[1] console.log(listNode) //为什么不返回节点值? let value=listNod
因为
Done
在您的li
中是一个节点,所以文本不仅仅是HTML
标记
更新后的代码:
let listNode=document.body.children[1].children[1]
console.log(listNode)
//为什么不返回节点值?
let value=listNode.childNodes[0].nodeValue;
console.log(值)
用户:
- 约翰
- 母鹿
在JavaScript中表示HTML元素(DOM对象)时,所有内容都是一个节点——甚至是元素中的文本因此,当您获得对的引用时,不是包含名称的节点,而是该的子文本节点。另一种说法是元素节点从来没有自己的值,它们的子节点有,这就是为什么当您试图获取的节点值时,会得到null
要获取该内容,您必须一直导航到该节点:
//获取#myList列表中所有子元素的节点列表:
让listNodes=document.queryselectoral(#myList>li);
//转到节点列表中的第一个 ,然后导航该节点中包含的文本节点
let value=listNodes[0]。firstChild.nodeValue;
log( .firstChild节点值为:“+value”);
log( 节点类型为:“+listNodes[0].nodeType+”(1=元素节点)”;
console.log( .firstChild节点类型为:“+listNodes[0].firstChild.nodeType+”(3=文本节点)”代码>
用户:
- 约翰
- 母鹿
<div>Users:</div>
<ul id="myList">
<li>John</li>
<li>Doe</li>
</ul>
let listNode = document.body.children[1].children[1]
console.log(listNode)
// Why not return node value?
let value = listNode.nodeValue
console.log(value)