“全部但不是” jQuery 选择器
我可以选择(使用 jQuery)HTML 标记中的所有 div,如下所示:
$('div')
但我想从以上选择。
我怎样才能使用 Jquery 函数来做到这一点?
I can select (using jQuery) all the divs in a HTML markup as follows:
$('div')
But I want to exclude a particular div
(say having id="myid"
) from the above selection.
How can I do this using Jquery functions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
简单:
使用
.not()
将删除与给定选择器匹配的元素从$('div')
返回的集合中获取它。您还可以使用
:not()
选择器:两者选择器做同样的事情,但是
:not()
更快,大概是因为 jQuery 的选择器引擎 Sizzle可以将其优化为原生.querySelectorAll()
调用。Simple:
Using
.not()
will remove elements matched by the selector given to it from the set returned by$('div')
.You can also use the
:not()
selector:Both selectors do the same thing, however
:not()
is faster, presumably because jQuery's selector engine Sizzle can optimise it into a native.querySelectorAll()
call.你可以用老式的方式来做。如此简单的事情不需要 jQuery。
专业提示:
一组 dom 元素只是一个数组,因此请在
NodeList
上使用您最喜欢的toArray
方法。向集合中添加元素只需
set.push.apply(set, arrOfElements);
从集合中删除元素只需
set.splice(set.indexOf(el), 1)
code>您无法轻松地一次删除多个元素:(
You could just do it the old fashioned way. No need for jQuery with something so simple.
Pro tips:
A set of dom elements is just an array, so use your favourite
toArray
method on aNodeList
.Adding elements to a set is just
set.push.apply(set, arrOfElements);
Removing an element from a set is
set.splice(set.indexOf(el), 1)
You can't easily remove multiple elements at once :(
[doc]
或
[doc]
是选择除一个 id 之外的所有 id 的主要方法,
您可以看到 此处演示
[doc]
or
[doc]
are main ways to select all but one id
You can see demo here
这将包括除 id 为“myid”的 div 之外的所有 div
This will include all the divs except the one with id 'myid'
我想这就是你需要的。
this is what you need i think.
应该这样做:
That should do it:
您使用 jQuery 库的
.not
属性:在此处。 div #myDiv 将为白色。
You use the
.not
property of the jQuery library:See it in action here. The div #myDiv will be white.