Javascript中的计算返回NaN
我正在尝试用Javascript进行计算。但剧本正在回归 我尝试用number、parseInt和parseFloat转换数据,但没有成功 有人知道我的剧本有什么问题吗 这是我的JavascriptJavascript中的计算返回NaN,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我正在尝试用Javascript进行计算。但剧本正在回归 我尝试用number、parseInt和parseFloat转换数据,但没有成功 有人知道我的剧本有什么问题吗 这是我的Javascript $('[id^=neg_pos]').each( function( i, e) { var quantity = e.options[e.selectedIndex].value; if ( quantity==='0') { } else if ( quantity==='1')
$('[id^=neg_pos]').each( function( i, e) {
var quantity = e.options[e.selectedIndex].value;
if ( quantity==='0') {
} else if ( quantity==='1') {
var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);
var tv1 = num1 + num2;
pos += tv1;
} else {
var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);
var tv1 = num1 + num2;
neg += tv1;
}
document.getElementById('positive').value = pos.toFixed(2);
document.getElementById('negative').value = neg.toFixed(2);
});
$(document).on('click', '#add_row', function(){
count++;
$('#total_item').val(count);
var html_code = '';
html_code += '<input type="text" name="price[]" id="price'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';
html_code += '<input type="text" name="tax[]" id="tax'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';
$('#test').append(html_code);
});
文本框price[]和tax[]是用Javascript创建的动态文本框
以下是文本框:
第一个文本框是用HTML创建的:
<input type="text" name="price[]" id="price1" onkeypress="return isNumber(event, this)" data-srno="1">
<input type="text" name="tax[]" id="tax1" onkeypress="return isNumber(event, this)" data-srno="1">
其他文本框是用Javascript创建的
$('[id^=neg_pos]').each( function( i, e) {
var quantity = e.options[e.selectedIndex].value;
if ( quantity==='0') {
} else if ( quantity==='1') {
var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);
var tv1 = num1 + num2;
pos += tv1;
} else {
var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);
var tv1 = num1 + num2;
neg += tv1;
}
document.getElementById('positive').value = pos.toFixed(2);
document.getElementById('negative').value = neg.toFixed(2);
});
$(document).on('click', '#add_row', function(){
count++;
$('#total_item').val(count);
var html_code = '';
html_code += '<input type="text" name="price[]" id="price'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';
html_code += '<input type="text" name="tax[]" id="tax'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';
$('#test').append(html_code);
});
您应该改用document.getElementById,如下所示:
var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);
原因是您试图访问getElementsByName返回的数组的value属性,该属性不存在-您必须先使用[0]来访问元素本身。getElementsByName返回一个元素数组。所以没有价值属性。@John Gabriel是正确的。getElementsByName'price[]将返回一个没有value属性的节点列表。您是指document.getElementsByName'price[]'[0].值吗?请注意[0]