2011-07-25 197 views
3

中的.next()元素這是我有:選擇具有特定屬性的JQUERY

$("#comment").next().attr('shown',0).fadeIn(); 

我想顯示下是隱藏頁面上的評論。然而,我試圖一次顯示兩條評論,所以如果你點擊第一條,第二條就是下一條。所以我給出了顯示的屬性。我想選擇具有shown=0屬性的下一個。上述不起作用。我相信這將是next(tr[shown=0]),但我不能得到那個工作(我在表中尋找下一行)

任何幫助表示讚賞!

+0

這可能是因爲「顯示」是不是在HTML默認屬性?改爲使用ID,班級或名稱。 – Warface

回答

9

next只能返回緊鄰的下一個兄弟。

你可以叫nextAll,它返回所有後續的兄弟姐妹,與:first選擇來獲得的第一個匹配一個:

$(...).nextAll("tr[shown=0]:first") 
0

SLaks回答會的工作,但我不會用你的HTML作爲自定義屬性考慮它可能會混淆下一個開發者。像這樣的不使用自定義屬性:

<style> 
.hidden { 
    display:none; 
} 
</style> 

<script> 
$(document).ready(function(){ 
    $('.showmore').click(function(){ 
     $(this).parent().nextAll(':hidden:first').removeClass('hidden'); 
    }) 
}); 
</script> 

<div id="comments"> 
<div class="comment" id="comment1"> 
    Test comment   
    <a href="#" class="showmore">Show More</a> 
</div> 
<div class="comment" id="comment2"> 
    2nd test comment 
    <a href="#" class="showmore">Show More</a> 
</div> 
<div class="comment hidden" id="comment3"> 
    3rd test comment 
</div> 
<div class="comment hidden" id="comment4"> 
    4th test comment 
</div> 
</div> 

Demo

0

我知道這是一個古老的職位,但只是標題的第一個答案把我摔下去。然而@SLaks的答案正是我個人正在尋找並解決我的問題。

這實際上幫助我在完全不同的情況下發生了很多事情,而恰巧發現了這篇文章。這個答案是他回覆中提到的最好的答案。

我遇到的問題類似於下面的內容,爲了得到下一個具有類似屬性名稱但不同值的特定屬性。

<div class="blah" data-field="sometext" data-index="0"></div> 
<div class="bar"></div> 
<div class="blah" data-field="sometext" data-index="1"></div> 


$("div[data-field='sometext'][data-index='0']") 
    .nextAll("div[data-field='sometext']:first"); 

以上返回

<div class="blah" data-field="sometext" data-index="1"></div> 

希望這可以幫助其他人,因爲它幫了我很大的