javascript如何得到多个div中的所有a元素
加入有2个div,每个下面各有2个<a>对象,希望得到一个数组,每个数组元素是一个<a>对象(不要是二维数组)。希望算法有效率,不要是自己遍历添加。我现在的代码是这样:v...
加入有2个div,每个下面各有2个<a>对象,希望得到一个数组,每个数组元素是一个<a>对象(不要是二维数组)。希望算法有效率,不要是自己遍历添加。
我现在的代码是这样:
var d=document.getElementsByTagName("div");
var x=new Array();//in-div anchor set
for(i=0; i<d.length; i++){
var tmp=dSet[i].getElementsByTagName("a");
x=x.concat(tmp);
}
但是结果得到一个2维数组,比如要访问第一个div的第一个a,需要调用x[0][0]。请问如何修改呢?
网页是服务器返回的,不能修改。不然我自己用getElementsByTagName("a")就可以得到了。
我想知道的主要是concat的方法为什么是按数组添加的,而不是数组元素添加的。 展开
我现在的代码是这样:
var d=document.getElementsByTagName("div");
var x=new Array();//in-div anchor set
for(i=0; i<d.length; i++){
var tmp=dSet[i].getElementsByTagName("a");
x=x.concat(tmp);
}
但是结果得到一个2维数组,比如要访问第一个div的第一个a,需要调用x[0][0]。请问如何修改呢?
网页是服务器返回的,不能修改。不然我自己用getElementsByTagName("a")就可以得到了。
我想知道的主要是concat的方法为什么是按数组添加的,而不是数组元素添加的。 展开
4个回答
展开全部
很奇妙的问题,求解未果。
不过jQuery中这样就行 $("div a")
不过jQuery中这样就行 $("div a")
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以在<a>连接加NAME 加属性!然后就可以取了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script>
window.onload =function(){
var d=document.getElementsByTagName("div");
var x=new Array();
for(i=0; i<d.length; i++){
var tmp=d[i].getElementsByTagName("a");
for(var j=0;j<tmp.length;j++)
x.push(tmp[j]); //两次循环,用push方法压入一个数组中。
}
alert('A元素个数:'+x.length+'\n\n'+x);
}
</script>
<div><a href="http://www.baidu.com">1111111111111</a> <a href="http://zhidao.baidu.com">22222222222</a></div>
<div><a href="http://mp3.baidu.com">333333333333</a><a href="hi://www.baidu.com">44444444444</a></div>
window.onload =function(){
var d=document.getElementsByTagName("div");
var x=new Array();
for(i=0; i<d.length; i++){
var tmp=d[i].getElementsByTagName("a");
for(var j=0;j<tmp.length;j++)
x.push(tmp[j]); //两次循环,用push方法压入一个数组中。
}
alert('A元素个数:'+x.length+'\n\n'+x);
}
</script>
<div><a href="http://www.baidu.com">1111111111111</a> <a href="http://zhidao.baidu.com">22222222222</a></div>
<div><a href="http://mp3.baidu.com">333333333333</a><a href="hi://www.baidu.com">44444444444</a></div>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询