2013-06-18 39 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