Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 带有嵌套ul元素的下拉列表_Jquery_Html - Fatal编程技术网

Jquery 带有嵌套ul元素的下拉列表

Jquery 带有嵌套ul元素的下拉列表,jquery,html,Jquery,Html,我有一些嵌套的ul元素。我希望在单击父li元素时,将隐藏的ul元素下拉。我得到了这个工作,然而,它下降了每一个ul元素与我的“下拉”类。我怎样才能让它只下载被点击的li的子ul <ul id="Ben" class="standDrop"> <li class="dropClick">First li <img class="dropImg" src="img/preDropArrw.svg"> </li>

我有一些嵌套的ul元素。我希望在单击父li元素时,将隐藏的ul元素下拉。我得到了这个工作,然而,它下降了每一个ul元素与我的“下拉”类。我怎样才能让它只下载被点击的li的子ul

<ul id="Ben" class="standDrop">
    <li class="dropClick">First li
        <img class="dropImg" src="img/preDropArrw.svg">
    </li>
    <!--nested ul for drowdown-->
    <ul class="dropDown">
        <li>info</li>
        <li>info</li>
        <li>info</li>
        <li>info</li>
        <li>info</li>
    </ul>
    <!--end nested ul for drowdown-->
    <li class="dropClick">second li
        <img class="dropImg" src="img/preDropArrw.svg">
    </li>
    <!--nested ul for drowdown-->
    <ul class="dropDown">
        <li>info</li>
        <li>info</li>
        <li>info</li>
        <li>info</li>
        <li>info</li>
    </ul>
    <!--end nested ul for drowdown-->
</ul>

我将稍微重新构造HTML以实现以下目标:

<ul id="Ben" class="standDrop">
    <li class="dropClick">First li
        <img class="dropImg" src="img/preDropArrw.svg" />
        <!--nested ul for drowdown-->
        <ul class="dropDown">
            <li>info</li>
            <li>info</li>
            <li>info</li>
            <li>info</li>
            <li>info</li>
        </ul>
    </li>
    <!--end nested ul for drowdown-->
    <li class="dropClick">second li
        <img class="dropImg" src="img/preDropArrw.svg" />
        <!--nested ul for drowdown-->
        <ul class="dropDown">
            <li>info</li>
            <li>info</li>
            <li>info</li>
            <li>info</li>
            <li>info</li>
        </ul>
    </li>
    <!--end nested ul for drowdown-->
</ul>
工作

2变化

a。使
li.dropClick的
ul.下拉列表
元素子元素

b。使用
$this.find(“.dropDown”)
查找单击元素的相应菜单。

使用jQuery方法“find”或“children”查找特定选择器中的元素。由于您的“dropClick”元素是发生单击的元素,因此该事件处理程序中的“this”引用将引用该元素。然后,使用“find”或“children”只引用“this”元素中与选择器匹配的元素。子元素只会立即抓取元素中的项,其中“find”将搜索整个子树,并查找您可能拥有的子菜单

关于子项的jQuery文档: 查找jQuery文档时:

代码,例如:

$(document).ready(function(){
    $(".dropClick").click(function(){
        $(this).children(".dropDown").slideToggle("slow");
    });
});

编辑:我在回答另一个问题时发了帖子,甚至没有注意到LI之外的UL。正如karthikr指出的,应该改变结构,使UL成为LI的子节点。规范规定只有LIs是ULs的子级。子列表必须包含在列表项中。

谢谢!我应该更了解html,但我永远不会得到jQuery!
$(document).ready(function () {
    $(".dropDown").hide();

    $(".dropClick").click(function () {
        $this = $(this);
        $this.find(".dropDown").slideToggle("slow");
    });
});
$(document).ready(function(){
    $(".dropClick").click(function(){
        $(this).children(".dropDown").slideToggle("slow");
    });
});