2013-01-07 55 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

不,如果它通過過濾器,那麼當前行就是我之後的那一行;否則我想搜索下一個比較結果,我會更新這個問題。 –

相關問題