首页 > 解决方案 > 如何构建一个 jquery 选择器,停止在匹配时更深入地遍历?

问题描述

如何构建一个不会在匹配时更深入地遍历的 jquery 选择器?它不应该选择任何具有相同选择器的子代。

$(".foo").each(function(){}); //how to modify '.foo'?


<div>
  <div class="foo">
    <!--select this-->
  </div>
  <div class="foo">
    <!--select this-->
    <div class="foo">
      <!--do not select-->
    </div>
  </div>
</div>

标签: jquery

解决方案


一种快速而肮脏的方法:

$('.foo').not('.foo .foo')

这不会选择 'foo' 的 'foo' 子级。

编辑:

如果你给你的外部 div 一个 id,那么你可以这样做:

$("#outer>.foo").each(function(){});

这将选择“#outer”的直接子元素“.foo”元素。

这比第一种方法更快!


推荐阅读