Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверить: есть ли такой элемент в коллекции (https://javascript.ru/forum/jquery/43129-proverit-est-li-takojj-ehlement-v-kollekcii.html)

Faab 23.11.2013 16:25

Проверить: есть ли такой элемент в коллекции
 
Есть две разные коллекции $('figure.classTest1, figure.classClassTest2') и $('div.clA, div.clB, div.clC') (вторая коллекция сгенерирована).

Когда я перебираю первую коллекцию, мне надо убедиться принадлежит ли каждый элемент первой коллекции ко второй коллекции
for(i=0;i<$('figure.classTest1, figure.classClassTest2').lenght;i++){
  // $('figure.classTest1, figure.classClassTest2').eq(i)
};

BETEPAH 23.11.2013 17:51

Приведенные примеры не будут иметь пересечений, так как в первой коллекции собраны <figure>, а во второй <div>.
Или я что-то не понял? html можете показать?

Faab 23.11.2013 19:07

Да, согласен - неудачный привёл пример. :) Ну я и напортачил!

Вообще то, я уже в скрипте обошёл такую проверку, но всё же задача была в чём. Генерировалась коллекция:
$('.type_25.color_3, .type_27.color_4, type_30.color_5')


Я перебирал все элементы figure и нужно было проверить, принадлежит ли каждый элемент к сгенерированной коллекции.

Html был такой:
...
<figure class="type_27 color_1"></figure>
<figure class="type_28 color_2"></figure>
<figure class="type_29 color_1"></figure>
...

Повторяю, я попытался обойти такую проверку, но если бы нужно было проверить: принадлежит ли каждый элемент figure к коллекции или нет, то как бы можно было бы это сделать?

BETEPAH 24.11.2013 00:46

Цитата:

Сообщение от Faab
принадлежит ли каждый элемент figure к коллекции или нет, то как бы можно было бы это сделать?

Ну, цикл в цикле:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<figure class="type_27 color_4"></figure>
<figure class="type_28 color_2"></figure>
<figure class="type_29 color_1"></figure>
<figure class="type_27 color_1"></figure>
<figure class="type_28 color_2"></figure>
<figure class="type_25 color_3"></figure>
<figure class="type_27 color_4"></figure>
<figure class="type_28 color_2"></figure>
<figure class="type_30 color_3"></figure>
<script>
var arr1 = $('.type_25.color_3, .type_27.color_4, .type_30.color_5');
var arr2 = $('figure');
var arr3 = [];
for (var i = 0; i < arr2.length; i++) {
    for (var j = 0; j < arr1.length; j++) {
        if (arr2[i] == arr1[j]) arr3.push(arr2[i]);
    }
}
console.log(arr3);
</script>

Или если коллекция arr1 не слишком большая, то можно обойтись и одним циклом: перебирать figure и проверять каждый, есть ли у него нужные классы.


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