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

cmssoen2  于 2023-05-28  发布在  jQuery
关注(0)|答案(3)|浏览(220)

这就是我的:

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

我正在尝试显示页面上隐藏的下一条评论。但是,我尝试一次显示两个注解,所以如果您单击第一个注解,则第二个注解是下一个。所以我给了一个show属性。我想选择属性为shown=0的NEXT。上面的不起作用。我相信它会是next(tr[shown=0]),但我不能让它工作(我在一个表中寻找下一行)
任何帮助是赞赏!

yrefmtwq

yrefmtwq1#

next只能返回下一个同级。
您可以使用:first选择器调用nextAll,它返回所有后续的兄弟节点,以获得第一个匹配的节点:

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

o2gm4chl2#

我知道这是一个老职位,但只是通过标题的第一个答案把我赶走了。然而,@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>

希望这能帮助别人,因为它帮助了我很大

o75abkj4

o75abkj43#

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

相关问题