有用:
<div class="xpav">
Create
</div>
<div class="apr" style="display: none;">
sometext
</div>
<script>
$('.xpav').click(function() {
$(this).next(".apr").slideDown("fast");
})
</script>
它没有:
<div class="xpav">
Create
</div>
<br />
<div class="apr" style="display: none;">
sometext
</div>
<script>
$('.xpav').click(function() {
$(this).next(".apr").slideDown("fast");
})
</script>
为什么要破坏它?
最佳答案
.next()
仅查看给定元素之后的元素,然后根据选择器检查该元素(如果提供)。在第二个示例中,由于br
存在并且没有apr
类,因此不会将其拾取。从API文档:
描述:获取匹配元素集中每个元素的紧随其后的同级。如果提供了选择器,则仅当与该选择器匹配时才检索下一个同级。
您的第二个示例需要使用.nextAll()
来搜索所有接下来的同级兄弟:
$('.xpav').click(function() {
$(this).nextAll(".apr").slideDown("fast");
});
要仅拾取匹配的第一个
.apr
,请使用.eq(0)
:$('.xpav').click(function() {
$(this).nextAll(".apr").eq(0).slideDown("fast");
});
关于javascript - 接下来有人可以在jQuery中解释这种奇怪的行为吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5706979/