如何从Jquery Selector中排除要解析的部分DOM

时间:2012-11-15 14:25:41

标签: jquery jquery-selectors

我希望我的页面的一部分不被jQuery Selector解析。

在下面的示例中,有没有办法获取所有“.module”元素但排除div下具有“exclude”类的元素?

此外,我们可以使用Jquery这样的“请不要解析这个区域”。 例如,我有一个页面有一个div(#huge)和一个巨大的html内容,有没有办法让Jquery忽略这个div(#huge)?

例如,我有这样的结构:

<div id="page">
  <div class="exclude">
    <div class="module"></div>
    <!-- HERE HUGE HTML -->
  </div>
  <div>
    <div class="module"></div>
    <div class="module"></div>
  </div>
</div>

3 个答案:

答案 0 :(得分:3)

$modules = $('div:not(".exclude") > .module');

http://api.jquery.com/not-selector

答案 1 :(得分:1)

在您的确切情况下,关键是只查看正确的div。

您首先要制作可搜索的集合

var $good = $('#page>div:not(.exclude)');

您的所有查询都将构建为$(yourquery, $good)

var $mymodules = $('.module', $good);

Demonstration (open the console)

请注意,在按ID查找元素时,使用$('#theid')而不是$('#theid', $good)仍然会更有效。

答案 2 :(得分:0)

$modulesNotTheHugeOne = $(".module").not("#huge");

选择所有课程module,但不选择身份huge

的课程

http://api.jquery.com/not/