2013-03-21 41 views
0

如果我有以下的HTML,我怎么使用jQuery,只选择第一级子和适用:不给他们如何选择的所有直接子:没有()

<div id="top"> 
    <span>select me</span> 
    <a>select me</a> 
    <div> 
     <span>not this</span> 
     <a>not this</a> 
    </div> 
    <div class="not-this">not this</div> 
</div> 

的jQuery:

jQuery('#top>:not(.not-this)'); // errors due to the > 
jQuery('#top:not(.not-this)'); // selects the second level children. 

它需要是不可知的儿童使用的标签。

编辑补充:还试图

jQuery('#top>*:not(.not-this)'); // selects the second level children. 
+0

你用'>'得到什么的jQuery的版本,什么 “错误”?你声称的结果没有一个应该像你说的那样工作。 – 2013-03-21 15:26:16

+0

@JamesMontagne我刚刚重试,并没有错误,但它仍然没有做我想做的。 – SystemicPlural 2013-03-21 15:31:51

回答

2

jQuery('#top>:not(.not-this)')实际上应该只是罚款。 http://jsfiddle.net/Entxc/

另一种方法是这样的:

$("#top").children().not(".not-this") 

http://jsfiddle.net/Entxc/1/

+0

你的小提琴选择孩子,我不想要它。 – SystemicPlural 2013-03-21 15:31:14

+0

你特别说你想让它选择一级的孩子。这就是这样做的。 – 2013-03-21 15:32:03

+0

问题是它也选择了二级孩子 - 他们有边界。我只想要一级的孩子。 – SystemicPlural 2013-03-21 15:32:59