Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 如何使用jQuery获取一级列表元素的宽度_Javascript_Jquery_Css_List_Each - Fatal编程技术网

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);
    });