我可以选择(使用jQuery)HTML标记中的所有div,如下所示:
$('div')
但我想从上面的选择中排除特定的div
(比如说id="myid"
)。
如何使用Jquery函数执行此操作?
答案 0 :(得分:156)
简单:
$('div').not('#myid');
使用.not()
将从$('div')
返回的集合中删除由给定的选择器匹配的元素。
您还可以使用:not()
选择器:
$('div:not(#myid)');
两个选择器都做同样的事情,但是:not()
is faster,大概是因为jQuery的选择器引擎Sizzle可以将它优化为本地.querySelectorAll()
调用。
答案 1 :(得分:9)
var els = toArray(document.getElementsByTagName("div"));
els.splice(els.indexOf(document.getElementById("someId"), 1);
你可以用老式的方式做到这一点。没有必要使用简单的jQuery。
专业提示:
一组dom元素只是一个数组,因此请在toArray
上使用您最喜欢的NodeList
方法。
向集合中添加元素只是
set.push.apply(set, arrOfElements);
从集合中删除元素是
set.splice(set.indexOf(el), 1)
您不能一次轻松删除多个元素:(
答案 2 :(得分:5)
答案 3 :(得分:4)
var elements = $('div').not('#myid');
这将包括除id为'myid'
之外的所有div答案 4 :(得分:3)
$('div:not(#myid)');
这就是我想要的。
答案 5 :(得分:3)
应该这样做:
$('div:not("#myid")')
答案 6 :(得分:3)
您使用jQuery库的.not
属性:
$('div').not('#myDiv').css('background-color', '#000000');
在行动here中查看。 div #myDiv将是白色的。