Вы можете использовать метод document.getElementsByClassName
, но он пока не является стандартным (он будет частью HTML5 ), вы можете быть полностью уверены, что он будет не работает в любой версии IE , некоторые современные браузеры предоставляют встроенную реализацию, но если она недоступна, проверка цикла для определенного класса, который вы ищете, можетготово.
Я лично использую следующую функцию, вдохновленную реализацией Дастин Диаз :
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);
}
}
Затем вы можете использовать ее следующим образом:
window.onload = function () {
var returnFalse = function () { return false; },
els = getElementsByClassName(document, 'yourClassName'),
n = els.length;
while (n--) {
els[n].onselectstart = returnFalse;
}
};