jquery - 如何使用next()在jquery中找到最接近的ul?

标签 jquery menu jquery-selectors slidetoggle

我有一个简单的菜单,如下所示:

<ul id="navigation">
    <li id="m_li">
         <div><span>+</span><a href="#" >myself</a></div>
        <ul class="test" id="x_ul">
            <li id="li">
                <a href="#" >Pictures</a>
            </li>
            <li id="li">
                <a href="#" >Audio</a>
            </li>
        </ul>
    </li>
    <li id="profile_modeling_li">
        <div><span>+</span><a href="#" >friend</a></div>
        <ul class="test" id="y_ul">
            <li id="li">
                <a href="#" >Pictures</a>
            </li>
            <li id="li">
                <a href="#" >Video</a>
            </li>
        </ul>
    </li>
</ul>

然后我使用jquery,所以当我点击+符号时,ul会向下滑动:

$("#navigation > li > div > span").click(function(){

    if(false == $(this).next('ul').is(':visible')) {
        $('#accordion ul').slideUp(300);
    }
    $(this).next('ul').slideToggle(300);
});

问题是 $(this).next('ul') 似乎不喜欢下一个 ul

有什么想法我做错了什么吗?

最佳答案

使用

$(this).parent().next()

而不是

$(this).next();

当然,您可以传递一个选择器(更简单或更复杂)来标识所需元素作为参数:

$(this).parent().next('ul.test[id$="_ul]"'); 

关于jquery - 如何使用next()在jquery中找到最接近的ul?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304019/

相关文章:

javascript - 简单的 jquery + javascript 不工作 : add ".has-error" not working and onclick event not defined

jquery - 所有浏览器都使用 HTML5 的带有 pur CSS3 的粘性页脚(高度未知)

jquery - 如何在事件时更改菜单项的内容

jquery - 为什么 $ ("div[id*='\\|']") 在 IE8 或 IE9 中不起作用?

jquery - 查找以字母开头的选择器

jquery选择器来计算可见表行数?

javascript - 从 url 字符串中获取 ID

jQuery 当父元素悬停时触发子元素

android - 操作栏 — 带有文本和图像的子菜单项无法正常工作

javascript - 下拉子菜单问题