jQuery将所有lis的总和值(文本)转换为父项
我花了几个小时试图找到一个答案,但我所找到的并没有解决我的问题 我有一堆嵌套的无序列表,其中在最后一级中有一个跨度中的值jQuery将所有lis的总和值(文本)转换为父项,jquery,html-lists,Jquery,Html Lists,我花了几个小时试图找到一个答案,但我所找到的并没有解决我的问题 我有一堆嵌套的无序列表,其中在最后一级中有一个跨度中的值 <ul> <li> <a> <span>0</span> </a> <ul> <li> <a>
<ul>
<li>
<a>
<span>0</span>
</a>
<ul>
<li>
<a>
<span>0</span>
</a>
<ul>
<li>
<a>
<span>1</span>
</a>
</li>
<li>
<a>
<span>2</span>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a>
<span>0</span>
</a>
<ul>
<li>
<a>
<span>0</span>
</a>
<ul>
<li>
<a>
<span>5</span>
</a>
</li>
<li>
<a>
<span>6</span>
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
这将导致以下结果
28 <-- here is the problem ...
3
1
2
11
11
5
6
28您可以尝试在下面输入代码,希望这对您有所帮助
var $topUl = $($('ul')[0]);
$.each($topUl.children('li'), function(index, val){
$ulEle = $(val).children('ul');
var sum1 = 0;
$.each($ulEle.children('li'), function(index, val){
var sum2 = 0;
$.each($(val).find('ul span'), function(index2, val){
sum2+=parseInt($(val).text());
});
$(val).children('a').find('span').text(sum2);
sum1+=sum2;
});
$(val).children('a').find('span').text(sum1);
});
维克拉姆,你救了我一天!非常感谢-我试图投票支持你的答案,但我很抱歉-似乎我不应该这样做。。
3 <-- this should only count childs not same level elements
3
1
2
11
11
5
6
var $topUl = $($('ul')[0]);
$.each($topUl.children('li'), function(index, val){
$ulEle = $(val).children('ul');
var sum1 = 0;
$.each($ulEle.children('li'), function(index, val){
var sum2 = 0;
$.each($(val).find('ul span'), function(index2, val){
sum2+=parseInt($(val).text());
});
$(val).children('a').find('span').text(sum2);
sum1+=sum2;
});
$(val).children('a').find('span').text(sum1);
});