我试图在jQuery中划分两个变量:

时间:2016-04-23 11:02:51

标签: jquery html

您可以浏览此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

请帮我解决这个问题。提前谢谢。

3 个答案:

答案 0 :(得分:3)

您正在解析jquery对象,而不是其值/文本。

  var num1 = $('#result').text();
  var num2 = $('#product1').val();

Internally,parseFloat将首先尝试将传递的参数转换为字符串。因此,将调用该对象toPrimitive并返回其默认原始值。例如:"[object object]"。因此,转换非数字字符串时会导致NaN。因此,NaN/NaNNaN

的eqauls

答案 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();