Ask*_*way 0 javascript arrays loops concatenation getelementsbyclassname
我想这样做:
a1 = document.getElementsByClassName('classA');
a2 = document.getElementsByClassName('classB');
a3 = a1.concat(a2);
for (var i=0; i<a3.length; ++i) {
}
Run Code Online (Sandbox Code Playgroud)
即获取classA的所有元素,classB的所有元素,然后以允许我遍历所有元素的方式组合它们.它不起作用,因为getElementsByClassName不返回标准数组.
这有效,但必须有一个更合理的方式:
var els = [];
var e1 = document.getElementsByClassName('classA');
var e2 = document.getElementsByClassName('classB');
[].forEach.call(e1, function(el) { els.push(el); });
[].forEach.call(e2, function(el) { els.push(el); });
Run Code Online (Sandbox Code Playgroud)
在现代浏览器中,您可以使用:
var a = document.querySelectorAll('.classA, .classB');
Run Code Online (Sandbox Code Playgroud)
这将查找具有"classA"或"classB"的所有元素.您可以在此处找到更多信息和浏览器兼容性表.
归档时间: |
|
查看次数: |
1698 次 |
最近记录: |