如何在javascript中选择使用相同类名的所有元素。我知道我可以使用document.getElementsByClassName
来做这件事,但我在某处读到它不是跨浏览器所以如果它是真的,那么根据类名选择元素的适当方法是什么,而没有jQuery或其他库。
谢谢!
答案 0 :(得分:8)
我找到了这段代码:
if (!document.getElementsByClassName) {
document.getElementsByClassName = function(classname) {
var elArray = [];
var tmp = document.getElementsByTagName("*");
var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
for (var i = 0; i < tmp.length; i++) {
if (regex.test(tmp[i].className)) {
elArray.push(tmp[i]);
}
}
return elArray;
};
}
答案 1 :(得分:1)
见这里:
Support for getElementsByClassName
我建议使用querySelector。它更自然,非常接近jQuery语法,因此对大多数人来说更常见。它也非常快,你不需要区分类,ID或其他。
如果你想支持IE&lt; 7,你需要一个像gdoron一样的垫片。
答案 2 :(得分:0)
使用自IE8以来支持的document.querySelector或document.querySelectorAll可能更好。
看看这里:
https://developer.mozilla.org/docs/Web/API/document.querySelector https://developer.mozilla.org/docs/Web/API/document.querySelectorAll