Javascript 从表格单元格中添加值
我有一个带有数字值的表格,它包含它的单元格 我的目标是通过单击表格单元格并获取它们的值,但在我随意单击时将它们相加。它应该跟踪总和,并将其显示在单独的Javascript 从表格单元格中添加值,javascript,jquery,Javascript,Jquery,我有一个带有数字值的表格,它包含它的单元格 我的目标是通过单击表格单元格并获取它们的值,但在我随意单击时将它们相加。它应该跟踪总和,并将其显示在单独的div中 我已经编写了处理点击td的代码,并添加了一个类,其中包括更改背景颜色,以便用户可以看到他迄今为止点击的内容。因为类是动态添加的,所以我使用live() 然后我想在飞行中检查具有新类(称为选择)的td,并将它们相加 这是到目前为止我所掌握的代码,但是,首先,它并没有将它们相加,而是一个接一个地追加,并且以某种奇怪的顺序: $(documen
div
中
我已经编写了处理点击td
的代码,并添加了一个类,其中包括更改背景颜色,以便用户可以看到他迄今为止点击的内容。因为类是动态添加的,所以我使用live()
然后我想在飞行中检查具有新类(称为选择)的td
,并将它们相加
这是到目前为止我所掌握的代码,但是,首先,它并没有将它们相加,而是一个接一个地追加,并且以某种奇怪的顺序:
$(document).ready(function() {
total = '';
$('td').click(function() {
$(this).toggleClass('selecting');
$('.selecting').live( {
click: function() {
if ($('td').hasClass('selecting')) {
total += $(this).html();
}
}
})
$('#feedback').text(total);
});
})
接下来的一个步骤是,再次单击单击的td
,该总和将减去再次单击单元格的值。所以,如果新单击,添加,如果再次单击,减法,但这就像是第二步,对我来说太难了,无法一次完成所有的第一步
total += +$(this).text();
将一个字符串添加到另一个字符串时,您正在连接。如果你想做加法,你需要处理数字。+
将字符串更改为数字
此外,更改total=''代码>对于total=0代码>
将一个字符串添加到另一个字符串时,您正在连接。如果你想做加法,你需要处理数字。+
将字符串更改为数字
此外,更改total=''代码>对于total=0代码>尝试以下操作:
$('td').click(function() {
var $td = $(this);
var total = 0;
$td.toggleClass('selecting');
$(".selecting").each(function() {
total += parseInt($(this).text(), 10);
});
$('#feedback span').text(total);
});
您将在代码中看到,对于每次单击,它都会完全重新计算总数,这就不需要在单击之间存储总数,这样您就可以减去单击的值。这使得逻辑简单得多
另外,我删除了live()
,首先是因为live()
现在已被弃用,不应使用,其次是因为您不需要使用它。尝试以下操作:
$('td').click(function() {
var $td = $(this);
var total = 0;
$td.toggleClass('selecting');
$(".selecting").each(function() {
total += parseInt($(this).text(), 10);
});
$('#feedback span').text(total);
});
您将在代码中看到,对于每次单击,它都会完全重新计算总数,这就不需要在单击之间存储总数,这样您就可以减去单击的值。这使得逻辑简单得多
另外,我删除了live()
,首先是因为live()
现在已被弃用,不应使用,其次是因为您不需要使用它。另外,不要使用live
。引用live文档中的一句话:“从jQuery 1.7开始,.live()方法已被弃用。请使用.on()来附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate(),而不是.live()。请参阅另一个旁注:声明变量时使用var
。如果不这样做,您的变量将隐式变为全局变量。另外,不要使用live
。引用live文档中的一句话:“从jQuery 1.7开始,.live()方法已被弃用。请使用.on()来附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate(),而不是.live()。请参阅另一个旁注:声明变量时使用var
。如果您不这样做,您的变量将隐式变为全局变量。谢谢您,这解决了一件重要的事情,我只是不知道如何将其转化为数字。我很乐意给你一些有用的评论,但我的声誉甚至不到15分,所以他们不让我这么做。谢谢你,这解决了一件重要的事情,我只是不知道如何把它变成数字。我很乐意给你一些有用的评论,但我的声誉甚至没有15分,所以他们不让我这么做。