添加数字并为结果创建div
我有以下HTML结构(无尽的)…
1 2.5 1.5 1.5 2
…我希望,脚本为每个包装器添加1到5的分数。 每个包装器的结果应显示在一个名为“result”的新div中。 这个div也应该由脚本创建。
它看起来像这样::
1 2.5 1.5 1.5 2 8.5 <-- created by script 2.5 3.5 4 1.5 1 12.5 <-- created by script 4 1.5 2.5 2 1.5 11.5 <-- created by script
我的问题:
a)如果类名总是相同的(包装器,内容,分数),如何为每个包装器添加正确的分数?
b)如何自动为每个包装器创建一个div结果?
谁能帮我?
迭代每个.content
元素,然后追加.score
元素的总和。
你可以通过嵌套.each()
循环来实现这一点:
这里的例子
$('.wrapper .content').each(function () { var sum = 0; $(this).find('.score').each(function () { sum += Number($(this).text(), 10); }); $(this).append('' + sum + ''); });
$('.wrapper .content').each(function () { var sum = 0; $(this).find('.score').each(function () { sum += Number($(this).text(), 10); }); $(this).append('' + sum + ''); });
.result { color: #f00; }
1 2.5 1.5 1.5 2 2.5 3.5 4 1.5 1 4 1.5 2.5 2 1.5
$(document).ready(function(){ $('.content').each(function(){ var total = 0; $(this).find('> .score').each(function(){ total += parseFloat($(this).text()); }); $(this).append('' + total + ''); }); });
工作演示
你可以使用jQuery的DOM:
var finalVal = 0; $(function () { $(".content").each(function () { finalVal = 0; $(this).find(".score").each(function () { finalVal += Number($(this).text()); }); $(this).append('' + finalVal + ''); finalVal = 0; }); });
.result {background: #99f;}
1 2.5 1.5 1.5 2 2.5 3.5 4 1.5 1 4 1.5 2.5 2 1.5