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

前端之家收集整理的这篇文章主要介绍了jQuery:选择不是某个类的后代的所有元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<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').find(':not(.x):not(.x *)');

编辑:再次恢复为第一次修订.我以为没有这样做,但是你的HTML中有一个错误,这使得所有元素都是#1的父代,所以没有一个被选中.

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

猜你在找的jQuery相关文章