gpt4 book ai didi

javascript - 如何在 javascript 中对所有 child 的属性求和?

转载 作者:行者123 更新时间:2023-11-30 16:32:51 25 4
gpt4 key购买 nike

我有一个看起来像的递归 DOM 树

<li data-count="3">
<li data-count="3">
<li data-count="3">
<li data-count="2">
</li>
<li data-count="1">
</li>
</li>
</li>
</li>

这个 DOM 树不是按原样给出的。最初,我只有“离开”时的数据计数 <li>元素。他们的 parent 没有那个属性。我想将它们添加到每个级别的 parent 。

我已经想出了遍历算法,如下所示:

function count(node) {
if (!node.hasClass('leaf')) {
node.children('li').each(function() {
count($(this));
}
node.attr("data-count") = sum(node.children('li').attr("data-count"));
}
}

但是,我对 javascript 或 jquery 不太熟悉,所以我坚持使用这种语法:

node.attr("data-count") = sum(node.children('li').attr("data-count"));

谁能帮我修正这个短语?

最佳答案

您需要使用parseInt(),否则js会将var解析为string

  var sum = 0;
$( "li" ).each(function() {
sum += parseInt($(this).attr( "data-count" ));
});

alert(sum) ;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li data-count="3">
<li data-count="3">
<li data-count="3">
<li data-count="2">
</li>
<li data-count="1">
</li>
</li>
</li>
</li>

关于javascript - 如何在 javascript 中对所有 child 的属性求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com