访问div元素时出问题

时间:2011-08-11 10:25:51

标签: javascript

<div id="nav">
    <ul id="linkselect">
      <li class="important" ><a href="home.html">Home</a></li>
      <li><a href="rlsdoc.html" >Release Document</a></li>
      <li><a href="dtadmp.html">Data Dump</a></li>
      <li><a href="facsetup.html">Facility Setup</a></li>
      <li><a href="dbuelem.html">DBU Elimination</a></li>
      <li><a href="contact.html">Contact us</a></li>
    </ul>
</div>

我想将div“nav”的所有链接(Home,Release Document等)放入一个数组中,以便我可以迭代地使用它们。请帮我解决这个问题的JavaScript代码。提前谢谢。

5 个答案:

答案 0 :(得分:3)

document.getElementById("nav").getElementsByTagName("a")

这将返回包含所有“a”节点的节点列表

答案 1 :(得分:0)

我们可以使用.querySelectorAll()的组合来查询所需的锚点,并使用Array.prototype.forEach来迭代这些静态元素引用。

var anchors = document.querySelectorAll('#linkselect a'),
    each    = [].forEach;

each.call( anchors, function( a ) {
    console.log( a );
});

注意:这两种方法在“old'ish”浏览器中都不可用,但很容易创建,有很多可用的填充程序。

答案 2 :(得分:0)

试试这个。

的Javascript

var items = [];
var anchors = document.getElementById("nav").getElementsByTagName("a");
for(var i = 0; i<anchors.length; i++){
    items.push(this.href);
}

的jQuery

var items = [];
$("#nav a").each(function(){
    items.push(this.href);
});

答案 3 :(得分:0)

这应该可以用纯JavaScript做到你需要的东西:

window.onload = function() {
    var data = [];
    var oDiv = document.getElementById("nav");
    var links = oDiv.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++)
        data.push(links[i].innerHTML);
    alert(data.join("\n"));
};

Live test case

答案 4 :(得分:-1)

jQuery的:

$('#linkselect li a')

普通javascript:

document.getElementById('linkselect').getElementsByTagName("a")