2017-09-03 51 views
2

当我从这个XML在HTML获取某个节点的值通过这个代码在JavaScript,输出为null,获得的nodeValue

function show(){ 
     var x = document.getElementsByTagName("allowance")[0]; 
     var y = x.nodeValue; 
     alert(y); 
    } 

<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> 

但是,警报项目的输出只是空。帮助

回答

0

您也可以使用innerHTML这样

y = document.getElementsByTagName("allowance")[0].innerHTML; 
alert(y); 
+0

谢谢!这是我一直在寻找的。 –

0

您应该使用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>

+0

谢谢。我已经有了最短的语法和答案。 –

+0

当然,'innerHTML'并不是真正用于非HTML的东西,而是XML,但它可能适用于大多数浏览器。 – adeneo

+0

感谢您的建议。我会记住它。 –