除了一个div和子节点之外,如何选择DOM中的所有元素

时间:2016-06-02 15:17:32

标签: javascript jquery html css dom

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

<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,而且孩子们仍然受到影响。

3 个答案:

答案 0 :(得分:3)

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

&#13;
&#13;
$('body *').not('div, div *').css('color', 'red');
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$('*').not('div, div > li');

答案 2 :(得分:0)

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>