“所有但不是”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将是白色的。