javascript - Javascript 中的计算返回 NaN
问题描述
我正在尝试用 Javascript 计算。但脚本返回 NaN。
我试图用 转换数据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') {
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);
});
文本框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 创建的
$(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);
原因是您试图访问由value
返回的数组的属性,该属性getElementsByName
不存在 - 您必须首先使用[0]
来访问元素本身。
推荐阅读
- reactjs - React Select 无法通过 TestCafe 聚焦在 Office UI Fabric 层内
- python - 为什么我的 JSON 元素没有从列表中删除?
- sql - 确定 Postgres 中所有数组之间的公共元素的数量
- neo4j - 我可以使用 Cypher 查询中的什么技术来仅获取基于每个节点的多个关系属性的路径
- email - 迁移到 Buster 后 SSMTP 失败
- ios - 如何为我的 CollectionView 单元格提供 onclick 功能?
- azure - 使用网络规则集对 Azure 容器注册表进行 Terraform 部署
- azure-cloud-shell - 从我的 Powershell 窗口运行 Azure Cloud Shell
- html - 同时具有两种定位的元素
- laravel - 我正在使用 Laravel、vue-router 和 MySQL 数据库创建一个 Web 应用程序