我正在尝试添加.appendTo
另一个<div>
的项目结果
每次点击项<button>
时,我希望总数增加。
如果结果是.appendTo
另一个<div>
?
<div class="item"></div>
<div class="total"></div>
<button class="menu item1">Item 1</button>
<button class="menu item2">Item 2</button>
<button class="menu item3">Item 3</button>
$(document).ready(function () {
$('.item1').click(function(){
$('<div class="skill">80</div><br/>').appendTo('.item');
});
$('.item2').click(function(){
$('<div class="skill">90</div><br/>').appendTo('.item');
});
$('.item3').click(function(){
$('<div class="skill">100</div><br/>').appendTo('.item');
});
});
$(".item").each(function() {
var total = 0;
$(this).find(".skill").each(function() {
total += parseInt($(this).text());
});
$(this).text('Total: ' + total).appendTo(".total");
});
答案 0 :(得分:0)
计算总数的代码需要在三个按钮中的每个按钮内部.click功能。目前它只被召唤一次。
答案 1 :(得分:0)
修改您的事件处理程序:
<script type="text/javascript">
$(document).ready(function () {
$('.item1').click(function(){
$('<div class="skill">80</div><br/>').appendTo('.item');
counter();
});
$('.item2').click(function(){
$('<div class="skill">90</div><br/>').appendTo('.item');
counter();
});
$('.item3').click(function(){
$('<div class="skill">100</div><br/>').appendTo('.item');
counter();
});
var counter = function() {
var total = 0;
$(".skill").each(function() {
total += +$(this).text();
});
$('.total').text('Total: ' + total);
};
});
</script>
答案 2 :(得分:0)
只需在每个按钮click
处理程序中进行计算:
如果内容是静态的,则无需循环和解析项目文本。
var total = 0;
$('.item1').click(function(){
$('<div class="skill">80</div><br/>').appendTo('.item');
$(".total").text('Total: ' + (total+=80));
});
$('.item2').click(function(){
$('<div class="skill">90</div><br/>').appendTo('.item');
$(".total").text('Total: ' + (total+=90));
});
$('.item3').click(function(){
$('<div class="skill">100</div><br/>').appendTo('.item');
$(".total").text('Total: ' + (total+=100));
});
更好(动态使用),就是使用data
attributes。这样,您可以为所有按钮创建单个click
处理程序。
HTML:
<li><a href="#"><button data-count="80" class="add menu item1">Item 1</button></a></li>
<li><a href="#"><button data-count="90" class="add menu item2">Item 2</button></a></li>
<li><a href="#"><button data-count="100" class="add menu item3">Item 3</button></a></li>
<!-- You can just put there as many items as you like, without writing extra scripts -->
脚本(所有按钮的单个功能):
var total = 0;
$('.add').click(function(){
var count = $(this).data('count');
$('<div class="skill">'+count+'</div><br/>').appendTo('.item');
$(".total").text('Total: ' + (total+=count));
});
然后你可以进一步扩展它。 F.ex.为每个新项目添加一些删除按钮,因此每次删除项目时total
金额都会减少。就像在这个例子中一样:JSFiddle
答案 3 :(得分:0)
首先,使求和起作用,
function sumSkills() {
var $item = $('.item'),
$total = $('.total'),
total = 0;
$item.find('.skill').each(function (elm) {
total += parseInt($(elm).text(), 10);
});
$total.text('Total: ' + total);
}
现在您可以随时应用此代码,例如
$('.item1').click(function () {
$('<div class="skill">80</div><br/>').appendTo('.item');
sumSkills();
});