Jquery .next()没有按预期工作

时间:2014-11-30 00:14:02

标签: jquery

所以我有这个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,所以情况并非如此)

2 个答案:

答案 0 :(得分:7)

听起来你没有使用正确的功能。

来自http://api.jquery.com/next/

  

描述:获取每个元素的紧随其后的兄弟   匹配元素的集合。如果提供了选择器,则检索它   只有当它与那个选择器匹配时才是下一个兄弟。

因此,如果你点击第一张图片,它会给你空集,因为下一个兄弟不是div。

尝试使用nextAll http://api.jquery.com/nextall/

$(this).nextAll("div").first().slideDown();

答案 1 :(得分:2)

在你的情况下,这应该有效:

$(this).nextAll('div:first').slideDown();