您可以浏览此jsfiddle中的代码。
$(document).ready(function() {
$('#product').change(function() {
$('#result').text($(this).val() * 6);
});
$('#product1').change(function() {
var num1 = $('#result');
var num2 = $('#product1');
var result1 = parseFloat(num1, 10) / parseFloat(num2, 10);
$("#result1").text(result1);
console.log(typeof(result1));
});
});
<div class="container">
<div class="col-xs-6">
Count<input name="shares" id="product" type="number" / min="0">
</div>
</div>
<div>
Total Value: <span id="result"></span>/
<input name="shares1" id="product1" type="number" / min="0">
<br /> Final Result: <span id="result1"></span>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
当我尝试划分两个变量时,我在结果字段中得到NaN
。
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:3)
您正在解析jquery对象,而不是其值/文本。
var num1 = $('#result').text();
var num2 = $('#product1').val();
Internally,parseFloat将首先尝试将传递的参数转换为字符串。因此,将调用该对象toPrimitive
并返回其默认原始值。例如:"[object object]"
。因此,转换非数字字符串时会导致NaN
。因此,NaN/NaN
是NaN
答案 1 :(得分:1)
num1 = $("#result");
这里,num1是元素数组。要解析内容,必须将其替换为:
num1 = $("#result")[0].innerHTML;
与num2相同:
num2 = $("#product1")[0].value;
或者使用jQuery快捷方式:
num1 = $("#result").text();
num2 = $("#product1").val();
答案 2 :(得分:0)
使用: 您需要先正确接收数据。
.text()表示span,.val()表示输入框。
var num1 = $('#result').text();
var num2 = $('#product1').val();