编写一个jQuery选择器来过滤没有子类的子div

Bla*_*sor 1 html javascript css jquery

请考虑以下HTML

<div class="container">
    <div class="item medium type">  value1  </div>
    <div class="item">  value2  </div>
    <div class="item large">  value3  </div>
    <div class="item small">   value4  </div>
    <div class="item">  value5  </div>
    <div class="item">  value6  </div>
    <div class="item">  value7  </div>
    <div class="item medium"> value8  </div>
    <div class="item">  value9  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

是否有一种直接的方法来编写一个jQuery选择器来获取container div没有任何子类的所有子节点?

例如,我需要写一个选择($('myselector').each())并获得唯一的项目div与数值• value2,value5,value6,value7,value9(因为这些div都不具备的任何子类).

可能是我错过了显而易见的事.但我做了一个快速搜索,以获得关于此的一些信息.

Tim*_*ola 5

您可以使用此选择器:

$('.container [class=item]')
Run Code Online (Sandbox Code Playgroud)

它使每个具有类属性的子项完全等于item(因此没有其他类).


但它不是真正可扩展的,如果你需要添加另一个不排除元素的类呢?

也许您应该考虑将类添加到其他元素,如:

<div class="container">
    <div class="item sub medium type">  value1  </div>
    <div class="item">  value2  </div>
    <div class="item sub large">  value3  </div>
    <div class="item sub small">   value4  </div>
    <div class="item">  value5  </div>
    <div class="item">  value6  </div>
    <div class="item">  value7  </div>
    <div class="item sub medium"> value8  </div>
    <div class="item">  value9  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后:not在您的选择器中使用:

$('.container .item:not(.sub)')
Run Code Online (Sandbox Code Playgroud)