如何使用JavaScript选择所有具有相同类名的元素。我知道可以使用document.getElementsByClassName
来实现,但我在某处读到它不是跨浏览器的,所以如果这是真的,那么除了jQuery或其他库之外,选择具有类名的元素的适当方法是什么。
谢谢!
如何使用JavaScript选择所有具有相同类名的元素。我知道可以使用document.getElementsByClassName
来实现,但我在某处读到它不是跨浏览器的,所以如果这是真的,那么除了jQuery或其他库之外,选择具有类名的元素的适当方法是什么。
谢谢!
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;
};
}
请看这里:
我建议使用querySelector。它更加自然,接近jQuery语法,因此对大多数人更为常见。而且它非常快速,你不需要区分类、ID或其他内容。
如果你想要支持IE<7,你需要像gdoron提供的那样进行适配。
使用document.querySelector或document.querySelectorAll可能更好,它们从IE8开始支持。
点击这里查看:
https://developer.mozilla.org/docs/Web/API/document.querySelector https://developer.mozilla.org/docs/Web/API/document.querySelectorAll
getElement...()
更好、更灵活。 - Christoph