Цитата:
Правда это примитивненький фикс для осла. И он вместо NodeList возвращает Array, так что работать придется так:
var elements = document.getElementsByClassName("xxx");
elements = Array.prototype.slice(elements);
for (var i = 0, ; i < elements.length; i++) {
elements[i].className = "yyy";
}
|
потестировал скорость моего варианта и варианта от рони
Использовал в нагрузке 2000 элементов. Результаты (в ms) первый мой, второй - от рони: Safari 157 163 Chrome 51 62 Opera 461 406 Firefox 197 139 Firefox после тестинга - умирает :lol: Я думал что for будет слишком нагружать, но как видно, он даже чуть быстрее! |
Если так?
function modifyClass(className,func,param){
var objecs = document.getElementsByClassName(className);
for(i=0; i<objecs.length; i++){
var id = objecs[i].id;
if(func == 'renameClass'){
document.getElementById(id).className = param;
if( objecs.length > 0 ){
modifyClass(className,func,param);
}
}
}
}
function modifyClass('xxx','renameClass','yyy')
|
Блин, не ожидал и не знал что переменная модифицируется. Я почему-то думал что при назначении в переменную коллекции, сама коллекция составляется и назначается. А дальше просто хранятся ссылки на элементы.
Не ожидал что при обращении к переменной коллекция составляется заново. Както это тупо... |
| Часовой пояс GMT +3, время: 00:19. |