选择具有特定属性JQUERY的.next()元素

时间:2011-07-25 23:58:08

标签: jquery select attributes next

这就是我所拥有的:

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

我正在尝试显示隐藏在页面上的下一条评论。但是,我试图一次显示两条评论,所以如果你点击第一条,第二条就是下一条。所以我给出了显示的属性。我想选择属性为shown=0 NEXT 。以上不起作用。我相信它会是next(tr[shown=0])但是我无法让它工作(我正在寻找下一行的表格)

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:11)

next只能返回下一个兄弟。

您可以使用nextAll选择器调用:first,返回所有后续兄弟姐妹,以获得第一个匹配的:[/ p>

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

答案 1 :(得分:2)

我知道这是一个老帖子,但只是按照标题,第一个答案就把我扔了。但是@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>

希望这可以帮助别人,因为它帮助了我

答案 2 :(得分:1)

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