В современных браузерах вы можете получить их, используя getElementsByClassName функция:
var elements = document.getElementsByClassName('myClass');
for (var i = 0, n = elements.length; i < n; i++) {
//..
}
Обратите внимание, что я получаю elements.length
только один раз, что является обычной практикой при переборе HTMLCollections.
Это потому, что эти коллекции «живут», они могут меняться в любое время, и доступ к свойству длины на каждой итерации дорого.
Для полной реализации кросс-браузера, проверьте эту статью г-на Resig:
Edit: Я оставляю вас здесь переработана версию Dustin Diaz getElementsByClassName кросс-браузер чистый DOM Реализация:
function getElementsByClassName(node,classname) {
if (node.getElementsByClassName) { // use native implementation if available
return node.getElementsByClassName(classname);
} else {
return (function getElementsByClass(searchClass,node) {
if (node == null)
node = document;
var classElements = [],
els = node.getElementsByTagName("*"),
elsLen = els.length,
pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;
for (i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
})(classname, node);
}
}
Используйте jQuery. :-) – cletus
Для кросс-браузера совместимость и скорость использования jQuery. – rahul
jQuery - это, безусловно, путь. – Eric