Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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
Javascript 找不到UL的子元素_Javascript_Jquery - Fatal编程技术网

Javascript 找不到UL的子元素

Javascript 找不到UL的子元素,javascript,jquery,Javascript,Jquery,不知道我错过了什么。这是我的HTML: <ul class="top-level"> <li class="agency"><a href="contentAgency.php?id=6" class="test">Client</a> <ul class="agency-sub"> <li><a href="">Targeting this<

不知道我错过了什么。这是我的HTML:

    <ul class="top-level">
        <li class="agency"><a href="contentAgency.php?id=6" class="test">Client</a>
        <ul class="agency-sub">
            <li><a href="">Targeting this</a></li>
            <li><a href=""><Multiple entries</a></li>
        </ul>
        </li>
    </ul>
我试图在单击时将类
子活动
添加到嵌套的
ul li a
标记中。

而不是
$(此)。children()
使用
$(此)。next()
,因为您正在查找的
ul
元素是正在单击的
a.test
元素的兄弟

试试这个

$("ul.top-level").on("click", "li.agency a.test", function (event) {
    var numbs = $(this).attr("href").match(/id=([0-9]+)/)[1];
    $("#content-display article").hide();
    $(this).next().find("a").addClass("sub-active");
    $(this).parent().siblings().find("ul").hide();
    showContentAgency(numbs, this);
    event.preventDefault();
});

指的是
a.test
元素

所以你可能需要改变

$(this).children().find("a").addClass("sub-active");


引用

当提供选择器时,事件处理程序称为委派当事件直接发生在绑定元素上时,不调用处理程序,而只调用与选择器匹配的子体(内部元素)。jQuery将事件从事件目标冒泡到附加处理程序的元素(即,从最内层到最外层的元素),并为与选择器匹配的路径上的任何元素运行处理程序

$(“ul.top-level”)。在(“单击”,“ul.top-level li.agency a.test”
上将选择包含文本“Client”的链接,该文本将变为
$(this)

$(this).children()
没有上下文,因为链接没有子项。您可能需要:
$(this).parent().next().children()


$(this).parent().sides().find(“ul”).hide();
将选择“agency”的同级,查找('ul')时没有同级。孩子们也不起作用。

谢谢,有些问题仍然没有解决。我创建了一个小提琴并添加了
showContentAgency(numbs,this);
函数:您的选择器(关于
的第二个参数
)是错误的。我也编辑了我的答案。好的,现在它应用于我列表中所有嵌套的href。我如何才能只针对壁橱中的一个?你说的最接近是什么意思?第一个链接?我在这里更新了小提琴:。当我点击say时,
Client 2
我希望
sub-active
应用于该href。然后
nav active
应保持应用于
。您好,我将
showContentAgency(numbs,this);
添加到此小提琴:,某些功能仍处于关闭状态。但我正在尝试选择
的嵌套ul中的href
$(this).children().find("a").addClass("sub-active");
$(this).addClass("sub-active");