Javascript 使用jquery计算页面中第一级ulli的数量

Javascript 使用jquery计算页面中第一级ulli的数量,javascript,jquery,Javascript,Jquery,我有一些jquery,它将计算菜单中的项目,并以px为单位分配计算宽度的li 代码如下: $(document).ready(function(){ $('div#new-menu-lower ul li').css('width', ($('div#new-menu-lower ul').width() / $('div#new-menu-lower ul li').length)); $(function() { var menuWidth = $('div#

我有一些jquery,它将计算菜单中的项目,并以px为单位分配计算宽度的li

代码如下:

$(document).ready(function(){
    $('div#new-menu-lower ul li').css('width', ($('div#new-menu-lower ul').width() / $('div#new-menu-lower ul li').length));
    $(function() {
        var menuWidth = $('div#new-menu-lower ul').width();
        var listItems = $('div#new-menu-lower ul li').length;
        var itemWidth = Math.floor(menuWidth * (1/listItems)) - 40;
        $('div#new-menu-lower ul li').css('width', itemWidth);
    });
});
问题是,
listItems
显示为38项,它似乎计算出了每一个错误的li。它应该只计算第一个ulli元素,而不是子元素

我能做些什么来阻止这种情况发生吗?

改变

var listItems = $('div#new-menu-lower ul li').length;

你需要jQery选择器来完成你的工作

从jQuery文档:

选择由元素的“子元素”指定的所有直接子元素 由“家长”指定

作为一个CSS选择器,子combinator受到所有现代web应用程序的支持 浏览器包括Safari、Firefox、Opera、Chrome和Internet Explorer 7及以上版本,但特别是Internet Explorer版本6 及以下。但是,在jQuery中,此选择器(与所有其他选择器一起) 适用于所有受支持的浏览器,包括IE6

子组合子(E>F)可以被认为是一种更具体的形式 后代组合子(ef)的一种,因为它只选择第一级 后代

改变

var listItems = $('div#new-menu-lower ul li').length;

你需要jQery选择器来完成你的工作

从jQuery文档:

选择由元素的“子元素”指定的所有直接子元素 由“家长”指定

作为一个CSS选择器,子combinator受到所有现代web应用程序的支持 浏览器包括Safari、Firefox、Opera、Chrome和Internet Explorer 7及以上版本,但特别是Internet Explorer版本6 及以下。但是,在jQuery中,此选择器(与所有其他选择器一起) 适用于所有受支持的浏览器,包括IE6

子组合子(E>F)可以被认为是一种更具体的形式 后代组合子(ef)的一种,因为它只选择第一级 后代


使用直接子选择器:“div#new menu lower>ul li”@thrndike他也需要一个
ul>li
子选择器,否则它仍将返回所有
li
元素。使用直接子选择器:“div#new menu lower>ul li”@thrndike他也需要一个
ul>li
子选择器,否则它仍将返回所有
li
元素。