Javascript 找不到UL的子元素
不知道我错过了什么。这是我的HTML: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<
<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");