Javascript jquery获取子菜单的高度
我有下面的Javascript jquery获取子菜单的高度,javascript,jquery,html,css,asp.net-mvc,Javascript,Jquery,Html,Css,Asp.net Mvc,我有下面的标签。当点击锚定链接时,它应该显示一个div,下面是ul列表项。在锚定标签的点击功能上,我需要获得div的完整高度(实际上是带有li项的ul的高度),子菜单 <ul> <li> <a></a> <div> <ul> <li></li> <li></li> <li></li> </ul> </div> </li>
标签。当点击锚定链接时,它应该显示一个div,下面是ul列表项。在锚定标签的点击功能上,我需要获得div的完整高度(实际上是带有li项的ul的高度),子菜单
<ul>
<li>
<a></a>
<div>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</li>
</ul>
您的一些类选择器没有正确指定,另外还有一个印刷错误(都在第2行) 更新-似乎
同级()
方法的行为可能不符合您的预期…-我的.level-2
选择器仍然错误-因为在普通
之前需要另一个
。(参见下面的示例)
通过使用closest()
方法,您可以找到最近的父项(例如,
),然后使用find()
选择嵌套在该父项中的所有.level-2.plain项
请记住,处理程序函数中的$(this)
是指被处理的元素(在本例中是指被单击的.menu链接
项)
$(".menu-link").click(function () {
var $subnavdev = $(this).closest('li').find('.level-2.plain');
// ...
});
有一个输入错误:
sublings()
-这是在您的代码中,还是在复制/粘贴工件中?此外,您可能需要引用类名?使用
前缀:例如.sides('.sub-menu')…
我尝试了您的代码。它根本没有进入for-each循环。
$(".menu-link").click(function () {
var $subnavdev = $(this).parent().sublings('sub-menu').siblings('level-2 plain')
var totalHeight = 0;
$subnavdev.find('li').each(function() {
totalHeight += $(this).outerHeight(true);
});
alert(totalHeight);
});
$(".menu-link").click(function () {
var $subnavdev = $(this).closest('li').find('.level-2.plain');
// ...
});