1

我正在编写一个主干应用程序,并使用使用 jquery 选择器的内置事件处理。

我想编写一个选择器,它将选择除.delete下面之外的所有内容,然后.delete是一个专门的选择器(这要简单得多。)

基本上,我想选择父项中的所有内容,除了这个特定的孩子。

我试过li:not(.delete)了,但是没有用。有任何想法吗?

<li class="">
  <a href="#">
    <i class="icon-book"></i>
    <span class="name">@randallb</span>
    <i class="delete icon-remove-sign pull-right"></i>
  </a>
</li>
4

4 回答 4

5
li :not(.delete)

需要空格来指定后代,没有它就对没有类notli意义选择进行操作lidelete

于 2012-08-08T04:28:11.823 回答
2

试试这个:

$('li > a *:not(.delete)')
于 2012-08-08T04:31:49.963 回答
0
$('li').children().find('*:not(.delete)').css('color', 'red');
于 2012-08-08T05:06:31.603 回答
0

如果这是您正在寻找的。

// allChildrenArray will hold all the children of li except .delete
   var allChildrenArray = [];
    function getSelectedChildren(parentContainer, rejectedClass){
        parentContainer.children().each(function(){
            if(!$(this).hasClass(rejectedClass)){
                allChildrenArray.push(this);
            }
            getSelectedChildren($(this), rejectedClass);
        });
    }
    getSelectedChildren($('li'), 'delete');
于 2012-08-08T05:44:05.410 回答