"所有但不是"jQuery选择器

siv*_*636 81 javascript jquery jquery-selectors

我可以选择(使用jQuery)HTML标记中的所有div,如下所示:

$('div')
Run Code Online (Sandbox Code Playgroud)

但是我想从上面的选择中排除一个特定的div(比如说有id="myid").

如何使用Jquery函数执行此操作?

Boj*_*les 159

简单:

$('div').not('#myid');
Run Code Online (Sandbox Code Playgroud)

使用.not()将从返回的集合中删除由给定的选择器匹配的元素$('div').

您还可以使用:not()选择器:

$('div:not(#myid)');
Run Code Online (Sandbox Code Playgroud)

两个选择器都做同样的事情,但:not()速度更快,大概是因为jQuery的选择器引擎Sizzle可以将它优化为本机.querySelectorAll()调用.


Ray*_*nos 9

var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);
Run Code Online (Sandbox Code Playgroud)

你可以用老式的方式做到这一点.没有必要使用简单的jQuery.

专业提示:

一组dom元素只是一个数组,所以toArray在a上使用你最喜欢的方法NodeList.

添加元素只是一个集合

set.push.apply(set, arrOfElements);

从集合中删除元素是

set.splice(set.indexOf(el), 1)

你不能一次轻松删除多个元素:(


gen*_*sis 7

$("div:not(#myid)")
Run Code Online (Sandbox Code Playgroud)

[DOC]

要么

$("div").not("#myid")
Run Code Online (Sandbox Code Playgroud)

[DOC]

是选择除一个id之外的所有内容的主要方式

你可以在这里看到演示


Eht*_*ham 6

   var elements =  $('div').not('#myid');
Run Code Online (Sandbox Code Playgroud)

这将包括除 id 为“myid”的 div 之外的所有 div