javascript - 使用 jQuery 管理 HTML 列表项

标签 javascript jquery html list

我拥有的 HTML 列表的一部分:

<ul id="listMenu" style="list-style-type:none; margin-left:-50">
    <li> __Menu1
        <ul class="menuitems">
            <li>Item A1</li>
            <li>Item A2</li>
        </ul>
    </li>

    <li> __Menu2
        <ul class="menuitems">
            <li>Item B1</li>
            <li>Item B2</li>
        </ul>
    </li>

    <li> __Menu3
        <ul class="menuitems">
            <li>Item C1</li>
            <li>Item C2</li>
        </ul>
    </li>

    <li> __Menu4
        <ul class="menuitems">
            <li>Item D1</li>
            <li>Item D2</li>
        </ul>
    </li>
</ul>

我的目标是在单独的 js 文件中使用 jQuery 来管理列表。

  • 最初,我只需要显示顶级菜单(__Menu1、__Menu2..)。
  • 单击顶级菜单时,我想展开并显示子项(项 A1 和 A2)
  • 再次点击顶级时,子项需要消失(可能使用 toggle() ?)
  • 当一个子项目被点击时,它需要用它的名字来提醒

我设法让子列表最初不显示:

$('ul:gt(1)').hide(); // Hide all submenus initially

但过去我真的不知道如何访问每个列表中的单个项目。我知道这一切可能都很简单,但我只是不知道如何开始,而且我阅读的所有其他信息比我知道的更高级。任何帮助将不胜感激

最佳答案

试试这个:

$(document).ready(function() {
    $(".menuitems").hide();
    $(".menuitems").find("li").click(function(e) {
        $(this).parent().show();
        alert($(this).text());
        e.stopPropagation();
    });
    $(".menuitems").parent().click(function() {
        $(this).find(".menuitems").toggle();
    });
});

我认为符合您的所有规范。

参见 http://jsfiddle.net/BfqhV/2/

关于javascript - 使用 jQuery 管理 HTML 列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305501/

相关文章:

javascript - 访问 braintree 数组内部的问题

javascript - 是否可以在不使用 eval() 的情况下通过字符串或其他技术以编程方式定义函数?

jquery - 如何在页面加载时运行 Logo

javascript - 如何使用保存的 jquery 对象查找后代

javascript - Jquery 填充输入或文本区域

javascript - 如何在 Javascript 中将对象的方法作为参数传递给另一个函数

javascript - 固定位置停止在某个div或某个位置

jquery - 延迟 5 秒后用文本替换图像

javascript - 我如何捕获在我的容器 <div> 中点击了哪个数字 <div> 并将其存储在变量中

c# - 使用 Layout = null 时丢失所有格式?