获取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 仍会不断返回?

Javascript:只能从输入中获取 nodeValue() 而不是 value()?

怎样获取节点的文本值

无法将属性“nodeValue”设置为 null

PHP DOM:获取没有后代节点的 Nodevalue

JS nodeValue属性 和 innerText属性 获取文本