我需要选择两个不同导航面板中的所有锚点元素。最好的方法是什么?有效的& /或有效的。选项1:我可以设置每个导航到一个类,寻找类,抓住每个div中的所有锚与该类。Javascript:来自两个Div ID的元素
选项2:我可以用一个ID设置每个导航。出于某种原因,我无法从每个div id中将两个锚点数组连接起来。任何想法为什么,他们是阵列?防爆。
<code>
var nav = document.getElementById("nav").getElementsByTagName("a");
var subnav = document.getElementById("subnav").getElementsByTagName("a");
var allnav = nav.concat(subnav); // Didn't seem to work
// neither did this. Just seemed to break.
for(var i=0;i<subnav.length;i++){
nav.push(subnav[i]);
}
</code>
选项3:通过ID获取每个div。发送函数以循环,获取锚点并执行适当的操作。
哪个会更快或使用更少的资源,& /或您认为哪个更易于维护?
我知道jQuery有一个很好的方法,但由于我的代码片段很短,我不希望只为一些小函数添加整个库。
谢谢你的帮助!
不要将本机对象当作本地对象,并且不要使用* for..in *,因为NodeLists已命名不适合复制到Array的属性(如* item *方法)。迭代使用for循环和计数器。 – RobG
这就是我所见过的将NodeList转换为Array的最奇怪的方式。实际上,我敢肯定它不会工作,但是如果将'var arr = [];'更改为'var arr = Array(obj.length);'... –
@ alpha123为什么会这样工作? – Raynos