Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   получение списка элементов (https://javascript.ru/forum/events/17782-poluchenie-spiska-ehlementov.html)

Bebarr Swallow 02.06.2011 15:57

получение списка элементов
 
мне нужно получать элементы с определенным класом у которых присутствует атрибут с определенным значением

var a = document.getElementsByClassName("myClass");


из выше указаного мне нужны не все элементы с класом "myClass"а только те в которых указан атрибут (к примеру value="true")

nikita.mmf 02.06.2011 16:03

var a = document.getElementsByClassName("myClass");
var res = [];
for ( var i = 0; a[i]; i++ ) {
    if ( a[i].getAttribute("attrName") == "attrValue" ) {
        res[ res.length ] = a[i];
    }
}

Bebarr Swallow 02.06.2011 16:33

одобряю.. спасибо

Bebarr Swallow 02.06.2011 16:50

хотя ..

а какая разница между этими двумя записями?
for(var x=0; x<li.length; x++)
for(var i=0; a[i]; i++)

я пока не имею возможности проверить работоспособность вашей версии

nikita.mmf 02.06.2011 18:03

это же обычная проверка на истину/ложь

nikita.mmf 02.06.2011 18:05

Еще один способ, работает только в овременных браузерах
Array.prototype.slice.call(document.getElementsByClassName("className")).filter(function(el){ return el.getAttribute( name ) == value })


Часовой пояс GMT +3, время: 00:39.