【问题标题】:How to select all elements in DOM apart from one div and the children如何选择 DOM 中除一个 div 和子元素之外的所有元素
【发布时间】:2016-06-02 15:17:31
【问题描述】:

我需要使用 JQuery/JS 选择 DOM 中的所有元素,除了一个 div。唯一的问题是,我还需要在选择中排除 divs 子项。例如:

<li>1</li>
<li>2</li>
<div>
  3
  <li>3.1</li>
  <li>3.2</li>
</div>

$('*').not('div and children');

//should give me li 1 and 2, but not div 3 or li 3.1/3.2

我试过.not()关键字,但它只选择了父div,孩子们仍然受到影响。

【问题讨论】:

  • 您不能在ul 中使用div。它在 html 中无效。
  • @Mohammad 我知道,只是一个例子 :-) 我实际上是在引导模式上做的
  • 只省略直系子代,还是省略它们下面的所有后代?

标签: javascript jquery html css dom


【解决方案1】:

您可以选择带有$('body *') 但不能选择div 的所有元素,而不能选择带有.not('div, div *')div 的子元素

$('body *').not('div, div *').css('color', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>1</li>
<li>2</li>
<div>
  3
  <li>3.1</li>
  <li>3.2</li>
</div>

【讨论】:

    【解决方案2】:
    $('*').not('div, div > li');
    

    【讨论】:

      【解决方案3】:

      console.log($('body *').not('div, div li, script'));
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <li>1</li>
      <li>2</li>
      <div>
        3
        <li>3.1</li>
        <li>3.2</li>
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-04
        • 2010-09-15
        • 1970-01-01
        • 2013-09-28
        • 1970-01-01
        • 2012-05-20
        相关资源
        最近更新 更多