поиск элемента
Есть следующий код:
var blocks1 = $('.blocks1');
var blocks3 = $('.blocks3');
теперь мне нужно найти blocks3, который находятся внутри blocks1, но чтобы между blocks3 и blocks1 не было блоков с классом .block2. Как записать это выражение? Нужно что-то вроде этого(продолжение первого куска кода):
blocks1.find(':not(.block2)' blocks3);
понятно, что вот этот кусок ':not(.block2)' blocks3 неправильно записан. Как правильно написать? Спасибо. Знаю как решить эту задачу, но не знаю как это правильнее записать, чтобы максимально быстро выполнялось, поэтому и обращаюсь к вам. |
Цитата:
|
Попробуйте:
blocks1.children('.blocks3')
|
Поясню в чем затык подробнее:
есть уже найденные теги с классом .block1 [code=javascript] var block1 = $('.block1'); [/code] и есть уже найденные теги с классом .block3 внутри block1 [code=javascript] var block3 = $('.block3', block1); [/code] Теперь мне нужно отфильтровать block3. А именно - нужно убрать из block3 те элементы, которые идут внутри элементов из block1, и между block1 и block3 имеется тег классом block2. |
Цитата:
Нарисуйте html примера, а то не очень понятно слово "между" |
$(':not(.block2) .block3, > .block3', '.block1');
<!DOCTYPE HTML>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
</head>
<body>
<div class="block1">
<div class="block2">
<div class="block3"></div>
</div>
<div class="block3"></div>
<div>
<div class="block3"></div>
</div>
</div>
<div class="block1">
<div class="block2">
<div class="block3"></div>
</div>
<div class="block3"></div>
<div>
<div class="block3"></div>
</div>
</div>
<script>
var b = $(':not(.block2) .block3, > .block3', '.block1');
alert(b.length);
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 21:09. |