私のjQueryである:NaN値を取得するのはなぜですか?
$("#listDB").on("change", ".qfStyle", function(event) {
var id = $(this).parents("tr").find('.itemCbox').val();
$qnty = $("#qnty"+id);
$unit = $("#unit"+id);
$price = $("#price"+id);
if($(this).parents("tr").find('.pbo').text()=="Kilos")
{
if(this.value<1)
{
$qnty.text(this.value*1000);
$unit.text("gm");
var data = "action=getPrice&id="+id;
$.post("addBill.php", data, function(json) {
alert(json.price);
$price.text(json.price*this.value);
}, 'json');
}
}
});
サーバによって返されたJSONデータがある:
{ "価格": "52.00"}ここ
、this
は、テキストボックスを指し。私は、発現のための値NaN
を取得しています:
$price.text(json.price*this.value);
しかし、私はthis.value
とjson.price
の両方が数字であることを確実にしました。だから、なぜ私はそれらを掛けるときにNaNを得るのですか?
(1)私が使用することを考える: 'this.value'が原因スコープにアクセスできなくなっているのでjson.price.value(2)$に.getメソッド –
にしてみてくださいません。これの値を別の変数に格納し、その変数を使用して価格を取得します。 – magreenberg
this.valueを変数に割り当ててください。たとえば、$ price = $( "#price" + id); $ value = this.value; $ price.text(json.price * this.value)行を変更します。 $ price.text(json.price * $ value)に;それが機能しない場合は、この変数を乗算する前に10進数に変換してください。 –