首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态.length jquery函数

问动态.length jquery函数
EN

Stack Overflow用户
提问于 2015-03-31 17:14:30
回答 2查看 607关注 0票数 1

我有一个带有子菜单的无序列表。

我有一个无序列表,我希望打印每个列表项包含的子列表项的数量,但是,我编写的函数只返回0。

如果我用类或ID替换$(this),那么它可以正常工作,但是,它会为每个列表项打印相同的编号,我需要它是动态的,返回每个列表项的.length或.size()。

你能引导我朝正确的方向前进吗?)

代码语言:javascript
复制
/*atomic mass counter*/
$(document).ready(function(mass){

var atomic = $(this).parent('li').length;

$('.atom').html(atomic);

});

类.atom是每个列表项的子类,因此列表如下所示:

代码语言:javascript
复制
<ul>
  <li>
    <div class='atom'></div>
    <ul>
      <li><div class='atom'></div></li>
      <li><div class='atom'></div></li>
    </ul>
  </li>
  <li><div class='atom'></div></li>
  <li><div class='atom'></div></li>
  <li><div class='atom'></div></li>
</ul>

这里有一个JSfiddle:https://jsfiddle.net/6gzau45r/1/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 17:33:34

这个答案使用jQuery的.each()方法迭代所有li元素,并使用.find()方法计算每个li有多少类.atom的元素(和子元素)。

代码语言:javascript
复制
/*atomic mass counter*/
$(document).ready(function (mass) {

    $("li").each(function () {

        var atomic = $(this).find('.atom').length;

        $(this).find('.atom').first().html(atomic);

    });

});

小提琴

atomic计数被设置为每个li的第一个.atom元素。

票数 1
EN

Stack Overflow用户

发布于 2015-03-31 17:26:56

您必须使用.children()查看后代。您的解决方案可能类似于:

代码语言:javascript
复制
$(document).ready(function(mass){
    // For each atom div
    $('.atom').each(function() {
        // Calculates the children li
        $(this).html($(this).parent().children('ul').children('li').size());
    });    
});

这里有一把小提琴:

https://jsfiddle.net/6gzau45r/6/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29374533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档