2012-10-18 35 views
3

当你想选择下一个li项目,但不是具有someClassName的项目时,下一个最好的选择是什么。非选择器返回一个空数组!jquery:not selector not in next()method

or this is a case off using filter?

<ul class="items"> 
    <li class="first">pickle</li> 
    <li class="someClassName">tomato</li> 
    <li>chicken</li> 
    <li>cocosnut</li> 
    </ul> 

var current = $('ul.items li.first'); 
var next = current.next(':not(li.someClassName)'); 

感谢,理查德

回答

7

next仅选择所选元素的下一个同级。您可以使用nextAll方法:

var next = current.nextAll(':not(.someClassName)').first(); 

http://jsfiddle.net/P3EpK/

请注意,您的标记是无效的。

+0

缺失UL标签,你的意思是? – Richard

+0

我试过它在萤火虫,它返回undefined? – Richard

+0

@Richard是的,你有没有封闭的'li'标签。 – undefined