2013-01-07 114 views
0

我最近发布了问题Get Next Element that is Visible and Does Not Have Attribute,其中我问如何获得下一个同级,这是可见的,并没有属性id='count-me-out'获取当前或下一个兄弟元素匹配选择器

其结果是这似乎工作带来极大的语法如下:

var trNext = $(tr).nextAll('tr:visible:not("#count-me-out"):first'); 

我现在有这样的变化,我想用完全相同的过滤器不同的是我想要回当前元素(上面例子中的tr)如果它通过了过滤器。如果没有,那么我想继续看下一个。换句话说,除了从当前元素开始而不是下一个元素之外,它的工作方式与上面的行完全相同。

我想一种方法是使用prev()来获取以前的兄弟姐妹,然后使用上面的行来获得下一个匹配的。谁能说如果有更好的方法?

回答

1

尝试

var trNext; 
if ($(tr).is('tr:visible:not("#count-me-out")')){ 
    trNext = tr; 
} 
else{ 
    trNext = $(tr).nextAll('tr:visible:not("#count-me-out"):first'); 
} 

http://api.jquery.com/is/

+0

所以那会是'如果($(TR)。是( 'TR:可见:否( “#计数我出”)')trNext = tr; else trNext = $(tr).nextAll('tr:visible:not(“#count-me-out”):first');' –

+0

@JonathanWood你不想知道当前tr是否通过条件? – Musa

+0

不,如果它通过过滤器,那么当前行就是我之后的那一行;否则我想搜索下一个比较结果,我会更新这个问题。 –

相关问题