2013-06-18 75 views
0

我有以下代碼:如何從HTML標籤的子標籤信息

  <ul id="menu"> 
       <li id = 1><a href="http://google.com" >Link</a></li> 
       <li id = 2><a href="http://http://stackoverflow.com/" >Link</a></li> 
      </ul> 

<script> 
    for (var i = 1; i < 3; i++) 
    { 
    var element = document.getElementById(i); 
    var liLink = document.getElementById(i).childNodes[0].baseURI; 
    console.log(liLink); 
    } 
    </script> 

而且我在控制檯中看到

2 "http://google.com". 

所預期的那樣:

"http://google.com" 
"http://http://stackoverflow.com/" 

然而,當我登錄元素,我可以看到childNodes [0] .baseURI是不同的。 你能告訴我什麼是錯的?

感謝, 振亞

+2

[這就是baseURI'如何'工作。(https://developer.mozilla.org/en-US/ docs/Web/API/Node.baseURI):*「HTML中元素的基本URL通常等於節點所在文檔的基本URL。」*和*「文檔的基本URL默認爲文檔地址(如瀏覽器所顯示,並可在'window.location'中找到)「*。我假設你想要訪問'href'屬性。 –

+0

你可以試一下console.log(document.getElementById(i).childNodes [0] .baseURI); ? – Serge

回答

4

您需要閱讀href屬性,而不是基本URI。

<ul id="menu"> 
    <li id="1"><a href="http://google.com" >Link</a></li> 
    <li id="2"><a href="http://http://stackoverflow.com/" >Link</a></li> 
</ul> 

<script> 
    for (var i = 1; i < 3; i++) 
    { 
    var element = document.getElementById(i); 
    var liLink = document.getElementById(i).childNodes[0].getAttribute('href'); 
    console.log(liLink); 
    } 
</script> 
1

您的代碼應該是這樣的

for (var i = 1; i < 3; i++) 
    { 
    var element = document.getElementById(i); 
    var liLink = document.getElementById(i).childNodes[0];  
    console.log(liLink.href); 
    } 

入住這JSFiddle