Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не очень сложный вопрос по селекторам (https://javascript.ru/forum/jquery/21085-ne-ochen-slozhnyjj-vopros-po-selektoram.html)

DjDiablo 28.08.2011 12:30

Не очень сложный вопрос по селекторам
 
ЕСТЬ.

<div class="portlet" id="X1">
 <!-- вложенность 1го уровня -->
<table><tr> 
<td> 
<div class="column"> 
        <div class="portlet">
              <div class="column">
                     <!-- вложенность 2го уровня -->
                     COLUMN LEVEL 2
              <div>
        </div>
</div> </td>

<td> <div class="column">  
 <!-- вложенность 1го уровня -->
</div> </td>

</tr></table>


НУЖНО Выбрать из самого верхнего обьекта c id=X1 все вложенные column'ы 1го уровня вложенности. Иными словами если column вложен в column то он нам не нужен. Нам нужны только columnы вложенные в x1.

melky 28.08.2011 13:32

...
Цитата:

.portret > .column

DjDiablo 28.08.2011 14:51

Спасибо за интерес к моей скромной персоне, со скромной проблемой.
Однако ваш пример не совсем то, а точнее совсем не то )))

Ваш пример выберет только column вложенные непосредственно в portlet. К несчастью column может находится внутри какого нибудь div или Table. тоесть с вложенностью от 2х до бесконечности. Ваш селектор ищет только на верхнем уровне.

в моём примере он ненайдёт вобще не одного. кроме того что с текстом "column level 2", однако смысл всей задачи чтобы column level 2 как раз не находить )))), в найти только column's первого уровня.

melky 28.08.2011 17:25

плохой способ.
$("#X1 .column").filter(function(){
    
    return !$(this).      //при обходе элементов тут будет элемент коллекции.
          parents().                // тут будет tr,td,table,body. это плохо
               filter(".column"). // выделяем из родителя .column
                    length;         // и получаем найденную длину (0-не вложен)
                   
                   // т.к. нам нужны с нулевой длиной, 
                   // то вернём true, поставив ! в начале
})

walik 28.08.2011 18:56

$('#X1 .column:not(.column .column)')


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