获取nodeValue时输出为null
Posted
技术标签:
【中文标题】获取nodeValue时输出为null【英文标题】:Output is null, when getting the nodeValue 【发布时间】:2018-02-11 19:22:30 【问题描述】:我在 javascript 中通过这段代码获取节点的值,
function show()
var x = document.getElementsByTagName("allowance")[0];
var y = x.nodeValue;
alert(y);
来自 html 中的这个 xml。
<xml style="display: none">
<students id="lul">
<student>
<name>Mark Fajardo</name>
<allowance>9999</allowance>
</student>
<student>
<name>Rencie Macale</name>
<allowance>20</allowance>
</student>
</students>
</xml>
但是警报项目的输出只是空的。帮助
【问题讨论】:
【参考方案1】:你也可以像这样使用innerHTML
y = document.getElementsByTagName("allowance")[0].innerHTML;
alert(y);
【讨论】:
谢谢!这就是我要找的。span> 【参考方案2】:您应该使用 textContent
从 XML 标记中获取文本,因为 nodeValue
仅返回 XML 中 元素 上的 文本节点 的文本值> 节点,nodeValue
属性始终为null
。
function show()
var x = document.getElementsByTagName("allowance")[0];
var y = x.textContent;
console.log(y);
show()
<xml style="display: none">
<students id="lul">
<student>
<name>Mark Fajardo</name>
<allowance>9999</allowance>
</student>
<student>
<name>Arabella Raymundo</name>
<allowance>20</allowance>
</student>
</students>
</xml>
【讨论】:
当然,innerHTML
并不是真正用于非 HTML 而是 XML 的正确方法,但它可能适用于大多数浏览器。以上是关于获取nodeValue时输出为null的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使显示正确,在获取 nodeValue 时 null 仍会不断返回?