首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery:选择不是某个类的后代的所有元素

jQuery:选择不是某个类的后代的所有元素
EN

Stack Overflow用户
提问于 2011-12-16 01:11:40
回答 2查看 9.6K关注 0票数 16
代码语言:javascript
复制
<div class="container" id = "0" >
   <div class="x" id = "1"> 
      <div id = "2"> 
        <p id = "3">
          <span id = "4" >text</span> 
        </p>
      <div>
    </div>

    <div id="5">
      <div id="6"> 
        <p id="7">
          <span class="x" id="8" >text</span> 
          <span id="9">text</span> 
        </p>
      <div>
    </div>
<div>

你能帮我选择所有的元素吗:

  • 是'.x‘
  • 的'.container"'
  • not后代,它本身没有'.x’类。

查看上面的超文本标记语言;它应该选择元素5、6、7和9

  • Element 1具有类"X"
  • Elements 2是具有类“X”(元素1)的元素的直接子元素
  • Elements 3和4是具有类“X”(元素1)的元素的后代

元素8具有类"X“

我有这个选择器,但它一直在选择类为"X“的元素的后代(深子元素)。

代码语言:javascript
复制
var elements = $('.container').find().parents(':not(.X)').andSelf().filter(':not(.X)');
EN

回答 2

Stack Overflow用户

发布于 2011-12-16 01:14:29

这应该可以做到:

代码语言:javascript
复制
$('.container').find(':not(.x):not(.x *)');

编辑:再次恢复到第一个版本。我认为它不是这样工作的,但是您的HTML中有一个错误,它使#1成为所有元素的父元素,所以没有选择任何元素。

代码语言:javascript
复制
<div class="container" id = "0" >
    <div class="x" id = "1"> 
      <div id = "2"> 
        <p id = "3">
          <span id = "4" >text</span> 
        </p>
      <div> <!-- <-- must be a closing div tag -->
    </div>

    <div id="5">
      <div id="6"> 
        <p id="7">
          <span class="x" id="8" >text</span> 
          <span id="9">text</span> 
        </p>
      <div> <!-- <-- must be a closing div tag -->
    </div>
<div> <!-- <-- must be a closing div tag -->
票数 15
EN

Stack Overflow用户

发布于 2011-12-16 01:19:57

使用通配符

代码语言:javascript
复制
$(".container :not(* .x)")

代码语言:javascript
复制
$(":not(* .x)", ".container")

也许行得通。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8523954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档