2009-12-13 142 views
3

我想写一个选择器,该选择器针对没有特定类的第一个元素。选择第一个没有特定类的元素

<ul> 
<li class="someClass">item 1</li> 
<li>item 2</li> <-- I want to select this 
<li class="someClass">item 3</li> 
<li>item 4</li> 
</ul> 

我知道如何选择没有“SomeClass的”所有元素:

$('li not:(.someClass)').dostuff(); 

但我不知道如何只选择没有“SomeClass的第一要素”。

任何人都知道如何做到这一点?

回答

5
$('li:not(.someClass):first') 

这里的工作演示:http://jsbin.com/arosa

+0

我认为这是一个很好的r解决方案比使用eq(0)滤波器 - 可能更有效 – Andiih 2009-12-13 12:51:03

0

尝试

$('li first-child not:(.someClass)').dostuff() 
+2

我*想*这将针对第一孩子如果它没有一些类,而不是第一个孩子没有一些类......但我没有测试过它(或者我的解决方案!) – Andiih 2009-12-13 10:22:00

1

看到http://docs.jquery.com/Core/eq

$('li not:(.someClass)').eq(0).dostuff(); 

但指出其可能

$('li:not(.someClass)').eq(0).dostuff(); 

无论eq(0)将选择的第一要素

1

你只是有一个错字,语法是:not()

$('li:not(.someClass)').eq(0) 
1

试试这个:

alert($('li:not(li.someClass)').eq(0).html()); 
相关问题