2016-04-23 39 views
1

你可以通過這個jsfiddle的代碼。我想在jQuery中分兩個變量:

$(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

您正在解析jquery對象,而不是它的值/文本。

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

Internally,parseFloat會嘗試將傳遞的參數先轉換爲字符串。因此,將調用該對象toPrimitive並返回其默認原始值。例如:"[object object]"。所以當轉換非數字字符串將導致NaN。因此NaN/NaN is eqauls to NaN

0

use: 您需要先正確接收數據。

.text()for span和.val()for input box。

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

這裏,NUM1是元件的陣列。爲了解析內容,您有替換此:

num1 = $("#result")[0].innerHTML; 

同樣的,NUM2:

num2 = $("#product1")[0].value; 

或者使用jQuery的快捷方式:

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