2014-02-11 51 views
0

子节点我做的第一件事是我赞同一些HTML代码:获取节点/从HTML

echo "<div> 
     <file>somefile</file> 
     <file>another file</file> 
     </div>"; 

然后,我通过JavaScript找到文件的所有实例:

var file = document.getElementsByTagName("file"); 

然后我能够

file[index].childNodes[0].nodeValue 

现在我要到另一个层次添加到<file>这样的:通过让每个文件值

echo "<div> 
     <file> 
      <em1>element1</em1> 
      <em2>element2</em2> 
     </file> 
     </div>"; 

我该如何获得这些em值?我想要做的事,如:

file[index].getValueFromEm1... 

回答

0

像你原来的内容没有你仍然可以访问EMS的内容。

var files= document.getElementsByTagName("file"); 
files[0].childNodes[0].textContent 
files[0].childNodes[1].textContent 
+0

有趣的是它的工作,虽然我不得不使用的childNodes [1]来获得 “EM1” 和的childNodes [3]得到 “EM2”我会做更多的测试 – Yan

+0

我想它会记录标签的数量。 – Yan

+1

在某些浏览器中,空格也可以是childNode。 – Michel

0

尝试

file[index].childNodes[0].nodeValue 
file[index].childNodes[1].nodeValue 

等等

+0

错误:文件[指数] .childNodes [1]是不明确的 – Yan

0

试试这个

PHP

<?php 
echo "<div> 
     <file> 
      <em1>element1</em1> 
      <em2>element2</em2> 
     </file> 

     <file> 
     <em1>element3</em1> 
     <em2>element4</em2> 
     </file> 
     </div>"; 
?> 

JS

<script> 
var file = document.getElementsByTagName("file"); 
for(var i=0; i<file.length; i++) 
{ 
    var filenodes = file[i].childNodes; 
    for(var j=0; j<filenodes.length; j++) 
    { 
     var element_text = filenodes[j].innerHTML; 
     if(typeof element_text!= 'undefined') 
     { 
      alert(element_text); 
     } 
    } 
} 
</script>