поиск элемента
Есть следующий код:
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, время: 23:14. |