所以我有这个HTML
<div id="content_div">
<div>
<img src=""/>
<img src="" />
<img src="" />
<div class="test">
</div>
<img src="" />
<img src="" />
<img src="" />
<div class="test">
</div>
</div>
</div>
这个Jquery
$("#content_div > div > img").click(function()
{
$(this).next("div").slideDown();
});
当我点击图片(我的代码中有,但不是这里)我期待下一个div(点击图片后)滑落但没有任何反应。我几乎可以肯定我选错了因为如果我更改$(this).next(“div”)。slideDown(); to $(“。test”)。slideDown();它有效,虽然两个div都打开了,我只想打开一个,问题是什么? (我有一个合适的CSS,所以情况并非如此)
答案 0 :(得分:7)
听起来你没有使用正确的功能。
描述:获取每个元素的紧随其后的兄弟 匹配元素的集合。如果提供了选择器,则检索它 只有当它与那个选择器匹配时才是下一个兄弟。
因此,如果你点击第一张图片,它会给你空集,因为下一个兄弟不是div。
尝试使用nextAll http://api.jquery.com/nextall/
$(this).nextAll("div").first().slideDown();
答案 1 :(得分:2)
在你的情况下,这应该有效:
$(this).nextAll('div:first').slideDown();