javascript - 当前父元素的子元素选择器

标签 javascript jquery html

我有一个类别列表。我希望在单击相应类别时切换我的每个类别项目。

我做了下面的代码。但是,当我单击任何类别时,所有类别项目都会切换。我认为问题出在我的选择器上。我现在应该做什么改变。

HTML

<div class="nav">
    <ul>
        <li class="main_category">Category1</li>
            <div class="sub_category" style="display: none;">
                <ul>
                    <li>Item1</li>
                    <li>Item2</li>
                </ul>
            </div>
        <li class="main_category">Category2</li>
            <div class="sub_category" style="display: none;">
                <ul>
                    <li>Item1</li>
                    <li>Item2</li>
                </ul>
            </div>
    </ul>
</div> 

jQuery
$(document).ready(function() {
    $("li.main_category").click(function() {
        $(".sub_category").slideToggle();
    });
});

最佳答案

如果您不想更改 HTML 标记(假设该项目将 div 保留在 li 旁边):

$(document).ready(function() {
    $("li.main_category").click(function() {
        $(this).next().slideToggle();
    });
});

但是,我建议您稍微更改一下标记(因为您不需要或可能不希望列表中包含 div),以便它更清晰:

<div class="nav">
        <ul>
            <li class="main_category">Category1
                    <ul style="display:none">
                        <li>Item1</li>
                        <li>Item2</li>
                    </ul>
                </li>
            <li class="main_category">Category2
                    <ul style="display:none">
                        <li>Item1</li>
                        <li>Item2</li>
                    </ul>
                </li>
        </ul>
</div> 

脚本:

$(document).ready(function() {
    $("li.main_category").click(function() {
        $(this).children("ul").slideToggle();
    });
});

关于javascript - 当前父元素的子元素选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30283632/

相关文章:

javascript - 通过使用 CSS 在运行时设置它的高度/宽度来拉伸(stretch) img 会产生奇怪的渐变

javascript - 使用 Canvas 创建 MMO

html - 如何在组件ContextMenu的primeNG中使用属性appendTo?

javascript - 过滤结果以显示匹配结果与 ng-show angular js

javascript - 如何使用正则表达式删除 javascript 中字符串开头和结尾的 <br> ?

javascript - Rails + bootstrap float 形式

jquery - 如何使用 CSS 水平对齐 iframe(在屏幕中央)?

javascript - ie7、ie8 和 firefox 3.6 中的脚本错误

javascript - 如何打开带有链接的另一个标签页?

javascript - jQuery - OnClick 监听器在手机上 1 秒后触发