如何在javascript中获得隐藏字段的数字总和?
我有一些类为“absclass”的动态输入隐藏字段。我有数字和数字 这些字段中的字符。 我只想得到javascript中数字的总和。我写了如下内容,即如何在javascript中获得隐藏字段的数字总和?,javascript,jquery,Javascript,Jquery,我有一些类为“absclass”的动态输入隐藏字段。我有数字和数字 这些字段中的字符。 我只想得到javascript中数字的总和。我写了如下内容,即 不工作 $(document).ready(function() { $('#btn').live('click', function(e) { e.preventDefault(); var sum = 0; $('.absclass').each(fu
不工作
$(document).ready(function() {
$('#btn').live('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
sum += Number($(this).val());
});
$("#sum").html(sum);
});
});
请告诉我为什么它不工作
编辑:HTML代码
<td><input type="hidden" class="absclass" id="txtsp<?php echo $p; ?>" value=""/></td>
如果这些字段中的每一个都包含一个值(我假设是数字加字符),则可以使用parseInt获取数值:
$(document).ready(function() {
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
sum += parseInt($(this).val());
});
$("#sum").html(sum);
});
});
如果这些字段中的每个字段都包含一个值(我假设是数字加字符),则可以使用parseInt获取数值:
$(document).ready(function() {
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
sum += parseInt($(this).val());
});
$("#sum").html(sum);
});
});
您需要将该值解析为int。然后您可以检查该值是否为数字,如果是,则将其添加到sum中(在您的each中):
编辑:在看到您使用$.post填充数据后,请确保此函数的回调中包含代码i(因为只有在那里,您才能确保填充了数据并开始进行求和)。:
$.post(“matcheanswers.php”,{“txt1”:txt1,…},
功能(数据){
var obj=$.parseJSON(数据);
$('#txtspan').html(obj[]);
$('#txtsp').val(obj[]);
var总和=0;
$('.absclass')。每个(函数(){
var val=parseInt($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
您需要将该值解析为整数。然后您可以检查该值是否为数字,如果是,则将其添加到总和中(在每个值中):
编辑:在看到您使用$.post填充数据后,请确保此函数的回调中包含代码i(因为只有在那里,您才能确保填充了数据并开始进行求和)。:
$.post(“matcheanswers.php”,{“txt1”:txt1,…},
功能(数据){
var obj=$.parseJSON(数据);
$('#txtspan').html(obj[]);
$('#txtsp').val(obj[]);
var总和=0;
$('.absclass')。每个(函数(){
var val=parseInt($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
这是一把小提琴:
您的jquery版本是什么?因为live()
已被弃用这里有一个可用的小提琴:
您的jquery版本是什么?因为live()
不推荐使用
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
var num = Number(this.value);
if(!isNaN(num)){
sum += num;
}
});
$("#sum").html(sum);
});
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6},
function(data) {
var obj = $.parseJSON(data);
for (var k = 1; k < 7; k++) {
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
}
);
试试这样的
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
var num = Number(this.value);
if(!isNaN(num)){
sum += num;
}
});
$("#sum").html(sum);
});
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6},
function(data) {
var obj = $.parseJSON(data);
for (var k = 1; k < 7; k++) {
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
}
);
.live()方法已被弃用(jQuery 1.7)。请改用.on()
总数:
$(文档).ready(函数(){
$('#btn')。在('click',函数(e)上{
e、 预防默认值();
var总和=0;
$('.absclass')。每个(函数(){
sum+=数字($(this.val());
});
$(“#sum”).html(sum);
});
});
不推荐使用.live()方法(jQuery 1.7)。请改用.on()
总数:
$(文档).ready(函数(){
$('#btn')。在('click',函数(e)上{
e、 预防默认值();
var总和=0;
$('.absclass')。每个(函数(){
sum+=数字($(this.val());
});
$(“#sum”).html(sum);
});
});
移动您的
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
像这样进行后期回调
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
var num = Number(this.value);
if(!isNaN(num)){
sum += num;
}
});
$("#sum").html(sum);
});
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6},
function(data) {
var obj = $.parseJSON(data);
for (var k = 1; k < 7; k++) {
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
}
);
$.post(“matcheanswers.php”,{“txt1”:txt1,“txt2”:txt2,“txt3”:txt3,“txt4”:txt4,“txt5”:txt5,“txt6”:txt6,“textbox1”:textbox1,“textbox2”:textbox2,“textbox3”:textbox3,“textbox4”:textbox4,“textbox5”:textbox5,“textbox6”:textbox6},
功能(数据){
var obj=$.parseJSON(数据);
对于(var k=1;k<7;k++){
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var总和=0;
$('.absclass')。每个(函数(){
var val=Number($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
在您的代码中,在从服务器获取答案并为隐藏字段设置值之前,请尝试计算总和
还可以查看有关函数的更多信息,它发送异步请求移动您的
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
像这样进行后期回调
$('#btn').on('click', function(e) {
e.preventDefault();
var sum = 0;
$('.absclass').each(function() {
var num = Number(this.value);
if(!isNaN(num)){
sum += num;
}
});
$("#sum").html(sum);
});
});
$.post("matchanswers.php", {"txt1": txt1, "txt2": txt2, "txt3": txt3, "txt4": txt4, "txt5": txt5, "txt6": txt6, "textbox1": textbox1, "textbox2": textbox2, "textbox3": textbox3, "textbox4": textbox4, "textbox5": textbox5, "textbox6": textbox6},
function(data) {
var obj = $.parseJSON(data);
for (var k = 1; k < 7; k++) {
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var sum = 0;
$('.absclass').each(function() {
var val = Number($(this).val());
if (!isNaN(val)) {
sum += val;
}
});
$("#sum").html(sum);
}
);
$.post(“matcheanswers.php”,{“txt1”:txt1,“txt2”:txt2,“txt3”:txt3,“txt4”:txt4,“txt5”:txt5,“txt6”:txt6,“textbox1”:textbox1,“textbox2”:textbox2,“textbox3”:textbox3,“textbox4”:textbox4,“textbox5”:textbox5,“textbox6”:textbox6},
功能(数据){
var obj=$.parseJSON(数据);
对于(var k=1;k<7;k++){
$('#txtspan'+k).html(obj[k]);
$('#txtsp'+k).val(obj[k]);
}
var总和=0;
$('.absclass')。每个(函数(){
var val=Number($(this.val());
如果(!isNaN(val)){
sum+=val;
}
});
$(“#sum”).html(sum);
}
);
在您的代码中,在从服务器获取答案并为隐藏字段设置值之前,请尝试计算总和
还可以查看有关函数的更多信息,它发送异步请求不工作是什么意思?我得到的总和仅0显示您的html以及隐藏字段的值为空?一些建议:请停止使用live
和bind
…不工作是什么意思?我得到的总和仅0显示给我们y我们的html以及您的隐藏字段的值为空?一些建议:请停止使用live
和bind
…如果我使用parseInt,它将显示NaN。为此,我使用了isNaN。这也不起作用检查firebug中的输入字段是否真的包含任何值?我肯定它是空的,这就是它显示NaN的原因。不要放弃et将基数传递给parseInt函数parseInt(number,base)
如果我使用的是parseInt,它将显示NaN.For