2013-07-26 25 views
1

我只想简单地在单击元素之后定位文档中元素的第一个实例。这是我想出了:只在整个文档中获得下一个实例

$('.class').click(function(){ 
    var x = $(this).nextAll('.anotherclass').first(); 
    //do something 
}); 

,但这只能从.class意义上的兄弟姐妹抢,如果有一个兄弟没有.anotherclass例如,它不会继续去通过文档。

我想将它抓住.anotherclass情况下,我会很好,如果我通过行HTML行就开始在点击.class

我怎样才能做到这一点?

回答

0

全选,然后筛选到只有一个是当前的一个+ 1

$(".anotherclass").eq($(this).index(".anotherclass") + 1) 
+0

这是继续沿着DOM还是只工作,如果他想要的是下一个元素? – Jordan

+0

我不太确定他的意思是继续沿着dom。在这种情况下,除了通过点击鼠标来获取dom中的下一个内容外,这没有什么意义。 –

+0

他意味着他希望下一个具有'.anotherclass'类的元素,即使它完全位于文档末尾,在他单击的元素之后的任何位置 – Jordan

1

指数试试这个:http://jsfiddle.net/rmwNS/

var x = $('.class, .anotherClass'); 
var y = x.slice(x.index($(this)), x.length).filter('.anotherClass').first(); 

在该节点的顺序文档保存在x中,因此在点击节点之前将所有内容切分,从而为您找到第一个出现的起点.anotherClass

+0

这是一个很好的解决方案,值得更多的赞扬。我自己正在搞这个,我从这个答案中学到了一些我不了解jQuery的东西。好东西! – mcriecken

0

这听起来像你应该这样做在多个步骤

$('.class').click(function(){ 
    var x.length = 0; 
    x = $(this).siblings('.anotherclass').first(); //check siblings 
    if (x.length < 1) 
     //check here in another portion of code 
}); 

我从来没有听说过中断选择过程中的jQuery。所以我会尝试类似上述

相关问题