Javascript 如何使用jQuery获取一级列表元素的宽度
我有这个标记:Javascript 如何使用jQuery获取一级列表元素的宽度,javascript,jquery,css,list,each,Javascript,Jquery,Css,List,Each,我有这个标记: <div class="cntr"> <ul> <li class="frst_lvl" style="width: 125px;"> <ul> <li class="scnd_lvl" style="width: 25px;"></li> <li class="scnd_lvl" style="width: 25px;"&g
<div class="cntr">
<ul>
<li class="frst_lvl" style="width: 125px;">
<ul>
<li class="scnd_lvl" style="width: 25px;"></li>
<li class="scnd_lvl" style="width: 25px;"></li>
<li class="scnd_lvl" style="width: 25px;"></li>
</ul>
</li>
<li class="frst_lvl" style="width: 125px;"></li>
<li class="frst_lvl" style="width: 125px;"></li>
<li class="frst_lvl" style="width: 125px;"></li>
</ul>
</div>
谢谢你的帮助 $.find将返回匹配的每个后代。在您的示例中,$list包含两个列表,$list_el包含7项 改用$.children方法。在DOM中只向下移动一层 $list=$cntr.children('>ul'), $list_el=$list.children('>li')
请参阅此处的文档:这将为您提供类
first\u lvl
$( document ).ready(function() {
$width = 0;
$( ".frst_lvl").each(function( index ) {
$width += parseFloat($(this).width());
}); alert($width);
});
$list_el.length
是4或7?wird,但在控制台中我有4个,您需要关闭您的s,它们不会自动关闭。我的意思是您必须关闭其他li
元素,您只修复了更多。如果您的项目中的代码是这样的,那么这就是一个问题您的函数工作正常listWidth()
返回500,这是四个外部LIs的组合宽度。当您在选择器前面加上“>”前缀时,它将只与直接子体匹配。实例
$( document ).ready(function() {
$width = 0;
$( ".frst_lvl").each(function( index ) {
$width += parseFloat($(this).width());
}); alert($width);
});