jQuery:如何选择不是某个类的继承的所有元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (102)
<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>

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

  • 那是“.container”的继承
  • 不是'.x'的继承
  • 本身没有类“.x”。

看上面的HTML; 它应该选择元素5,6,7和9

  • 元素1具有类“X”
  • 元素2是元素与类“X”(元素1)的直接子元素,
  • 元素3和4是子元素与类“X”(元素1)

元素8具有类“X”

我有这个选择器,但它不断选择类“X”的元素的继承

var elements = $('.container').find().parents(':not(.X)').andSelf().filter(':not(.X)');
提问于
用户回答回答于

使用通配符

$(".container :not(* .x)")

$(":not(* .x)", ".container")

可能有用。

用户回答回答于

这应该可以做到:

$('.container').find(':not(.x):not(.x *)');

<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 -->

扫码关注云+社区

领取腾讯云代金券