2016-04-23 7 views
1

このjsfiddleのコードを調べることができます。jQueryで2つの変数を分割しようとしています。

$(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を得ている2つの変数を分割しようとします。

私にこれを手伝ってください。前もって感謝します。

答えて

3

jqueryオブジェクトは、その値/テキストではなく解析しています。

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

Internally、parseFloatは、最初の文字列として渡された引数を変換しようとします。そのオブジェクトの上でtoPrimitiveが呼び出され、そのデフォルトプリミティブ値が返されます。例:"[object object]"。したがって、数値以外の文字列を変換するとNaNになります。したがって、NaN/NaNNaN

0

となります。 データを正しく受信する必要があります。

.text()と入力ボックスの.val()です。ここ

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

、NUM1素子のアレイです。

num2のと同じ
num1 = $("#result")[0].innerHTML; 

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

またはjQueryのショートカットを使用します。

num1 = $("#result").text(); 
num2 = $("#product1").val(); 
をあなたがこれを交換する必要がコンテンツを解析するには
関連する問題