Вход

Просмотр полной версии : Проверить: есть ли такой элемент в коллекции


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
принадлежит ли каждый элемент 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 и проверять каждый, есть ли у него нужные классы.