“所有但不是”jQueryselect器
我可以select(使用jQuery)HTML标记中的所有div,如下所示:
$('div')
但是我想从上面的select中排除特定的div
(比如id="myid"
)。
我怎样才能使用JQuery的function呢?
简单:
$('div').not('#myid');
使用.not()
会从由$('div')
返回的集合中移除给它的select器所匹配的元素。
您也可以使用:not()
select器:
$('div:not(#myid)');
两个select器都做同样的事情,但是:not()
更快 ,大概是因为jQuery的select器引擎Sizzle可以优化它到一个本地的.querySelectorAll()
调用。
var els = toArray(document.getElementsByTagName("div")); els.splice(els.indexOf(document.getElementById("someId"), 1);
你可以用老式的方式来做。 用这样简单的东西不需要jQuery。
专业提示:
一组dom元素只是一个数组,所以在NodeList
上使用你最喜欢的toArray
方法。
添加元素到一个集合只是
set.push.apply(set, arrOfElements);
从集合中删除元素是
set.splice(set.indexOf(el), 1)
你不能一次轻松删除多个元素:(
$("div:not(#myid)")
[DOC]
要么
$("div").not("#myid")
[DOC]
是除了一个id之外的主要方法
你可以在这里看到演示
var elements = $('div').not('#myid');
这将包括除ID为'myid'的所有div
$('div:not(#myid)');
这是你所需要我想的。
这应该做到这一点:
$('div:not("#myid")')
您使用jQuery库的.not
属性:
$('div').not('#myDiv').css('background-color', '#000000');
在这里看到它的行动。 div #myDiv将是白色的。