2014-02-11 58 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>