Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery错误中的自动计算_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery错误中的自动计算

Javascript jQuery错误中的自动计算,javascript,jquery,html,Javascript,Jquery,Html,. 我试图做计算列1和列2,里面的值[]应该考虑。 到目前为止,我能够在使用拆分函数时计算特定列,但我得到了一个错误 例如:在第一个单元格中,我有[]的值,如果我输入时没有[],它的计算是正确的,它不会进行计算并显示错误 这是我的小提琴链接 $(文档).ready(函数(){ $('.quantity').on('change,keyup',function(){ var val=$(this.val(); console.log(val) //按箭头键时避免自动inc var preVal

.
我试图做计算列1和列2,里面的值[]应该考虑。 到目前为止,我能够在使用拆分函数时计算特定列,但我得到了一个错误

例如:在第一个单元格中,我有[]的值,如果我输入时没有[],它的计算是正确的,它不会进行计算并显示错误

这是我的小提琴链接

$(文档).ready(函数(){
$('.quantity').on('change,keyup',function(){
var val=$(this.val();
console.log(val)
//按箭头键时避免自动inc
var preVal=$(this.data('val');
$(此).data('val',val);
//按箭头键时避免自动inc//
如果(val=''|| isNaN(val)| | val<1 | | val==未定义){
val=1;
}
$(this).parent().sides().each(function(){
var oldval=$(this.find('.calc').data(“val”);
警报(oldval);
var arr=oldval.split(“[”);
控制台日志(arr);
//var newval=val*oldval;
var newval=(val*parseFloat(arr[0])。toFixed(2);
console.log(newval);
如果(arr.length>1){
newval=newval+“[”+arr[1];
}
$(this.find('input').val(newval);
});
autoSum();
});
autoSum();
});
函数autoSum(){
var$dataRows=$(“#sum_table tr:not('.total,.title'));
var总计=[0,0,0];
$dataRows.each(函数(){
$(this).find('input')。每个(函数(i){
totals[i]+=parseFloat($(this.val());
});
});
$(“#sum_table td.totalCol”)。每个(函数(i){
$(this.html(“总计:+totals[i]);
});
}

表格计算
计算

价值1 价值2 价值3 量 总数: 总数: 总数:
参见小提琴:

如果数据val==“”,则可能返回未定义。我已更改了此行:

var oldval = $(this).find('.calc').data("val") || "0";
为了安全起见,将oldval强制转换为String,以便split函数可以工作

var arr = String(oldval).split("[");
我还为兄弟姐妹指定了一个类:

$(this).parent().siblings('.calc-cell')
$(文档).ready(函数(){
$('.quantity').on('change,keyup',function(){
var val=$(this.val();
console.log(val)
//按箭头键时避免自动inc
var preVal=$(this.data('val');
$(此).data('val',val);
//按箭头键时避免自动inc//
如果(val=''|| isNaN(val)| | val<1 | | val==未定义){
val=1;
}
$(this).parent()同级('.calc cell')。每个(函数(){
var$calc=$(this.find('.calc');
var oldval=$calc.data(“val”)| |$calc.val()| |“0”;
var arr=String(oldval).split(“[”);
控制台日志(arr);
//var newval=val*oldval;
var newval=(val*parseFloat(arr[0])。toFixed(2);
console.log(newval);
如果(arr.length>1){
newval=newval+“[”+arr[1];
}
$(this.find('input').val(newval);
});
autoSum();
});
autoSum();
});
函数autoSum(){
var$dataRows=$(“#sum_table tr:not('.total,.title'));
var总计=[0,0,0];
$dataRows.each(函数(){
$(this).find('input')。每个(函数(i){
totals[i]+=parseFloat($(this.val());
});
});
$(“#sum#u table td.totalCol”)。每个(函数(i){
$(this.html(“总计:+totals[i]);
});
}

表格计算
计算

价值1 价值2 价值3 量 总数: 总数: 总数:
问题不清楚。如何处理[2]@brk不想用[]Tq处理值,但当我计算第三列时,第二行被删除,var oldval=$(此)。查找('.calc')。数据(“val”)| |“0”;我不确定这是否对您有帮助。它使该列的值为0,这是因为数据val尚未为后两行设置。您可以使用$(this).find('.calc').data(“val”)|$(this).find('.calc').val()| |“0”y我也看到并修复了我不想更改第三列中的值的问题,我的小提琴[,但它一直在更改