Javascript 如何从HTML标记中获取子标记信息

Javascript 如何从HTML标记中获取子标记信息,javascript,html,Javascript,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 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>
预计:

 "http://google.com"
 "http://http://stackoverflow.com/"
但是,当我记录元素时,我可以看到childNodes[0].baseURI是不同的。 你能告诉我怎么了吗

谢谢,
Zhenya

您需要读取href属性,而不是baseURI

<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>
对于(变量i=1;i<3;i++) { var元素=document.getElementById(i); var liLink=document.getElementById(i).childNodes[0].getAttribute('href'); console.log(liLink); }
您需要读取href属性,而不是baseURI

<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>
对于(变量i=1;i<3;i++) { var元素=document.getElementById(i); var liLink=document.getElementById(i).childNodes[0].getAttribute('href'); console.log(liLink); }
您的代码应该是这样的

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

选中此项

您的代码应该如下所示

for (var i = 1; i < 3; i++)
  {
    var element = document.getElementById(i);
    var liLink = document.getElementById(i).childNodes[0];    
    console.log(liLink.href);
  }
for(变量i=1;i<3;i++)
{
var元素=document.getElementById(i);
var liLink=document.getElementById(i).childNodes[0];
console.log(liLink.href);
}
选中此项

:“HTML中元素的基本URL通常等于节点所在文档的基本URL。”和“文档的基本URL默认为文档的地址(由浏览器显示并在
窗口中可用。位置
)”。我假设您想访问
href
属性。是否可以尝试console.log(document.getElementById(I).childNodes[0].baseURI);?:“HTML中元素的基本URL通常等于节点所在文档的基本URL。”和“文档的基本URL默认为文档的地址(由浏览器显示并在
窗口中提供。位置
)”。我假设您想访问
href
属性。您能试试console.log(document.getElementById(I.childNodes[0].baseURI)?