Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问div元素时出现问题_Javascript - Fatal编程技术网

Javascript 访问div元素时出现问题

Javascript 访问div元素时出现问题,javascript,Javascript,我想把div“nav”的所有链接(Home、Release Document等)放入一个数组中,这样我就可以迭代地使用它们。请帮助我使用JavaScript代码。提前感谢。jQuery: $('#linkselect li a') 纯javascript: document.getElementById('linkselect').getElementsByTagName("a") 我们可以使用.querySelectorAll()的组合来查询所需的锚,并使用Array.prototype.

我想把div“nav”的所有链接(Home、Release Document等)放入一个数组中,这样我就可以迭代地使用它们。请帮助我使用JavaScript代码。提前感谢。

jQuery:

$('#linkselect li a')
纯javascript:

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

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

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

each.call( anchors, function( a ) {
    console.log( a );
});
注意:这两种方法在“旧式”浏览器中都不可用,但很容易创建,有很多可用的方法

document.getElementById("nav").getElementsByTagName("a")
这将返回一个包含所有“a”节点的节点列表,请尝试此操作

Javascript

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

这应该满足纯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"));
};
window.onload=function(){
var数据=[];
var oDiv=document.getElementById(“nav”);
var links=oDiv.getElementsByTagName(“a”);
对于(变量i=0;i

.

它不会选择所有的“a”节点,但“li”节点这不会在某些浏览器中运行,不是吗?@Jerome IE7及以下版本不支持数组的
forEach
,是的。@Shadow Wizard:是的。没有正确阅读。我的坏:)哈哈[链接帖子]-不错!无论如何,虽然我同意jQuery是好的和伟大的,但它不是上帝的命令。。有时,使用好的老式普通JavaScript会更好。:)当你问一个问题时要更加精确:你需要文本还是“a”节点的链接?还是您想要节点?
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"));
};