我的 jQuery 是:
$("#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数据为:
{"price":"52.00"}
这里,this
指的是文本框。我得到表达式的值 NaN
:
$price.text(json.price*this.value);
但我确保 this.value
和 json.price
都是数字。那么,为什么当我将它们相乘时会得到 NaN 呢?
最佳答案
问题是 this
不在 post
函数的范围内。
检查下面的代码。我添加了一个新变量 value
,它保存 this.value
的值,并且即使在 post
函数中也应该可用。
$("#listDB").on("change", ".qfStyle", function(event) {
var id = $(this).parents("tr").find('.itemCbox').val();
$qnty = $("#qnty"+id);
$unit = $("#unit"+id);
$price = $("#price"+id);
var value = this.value;
if($(this).parents("tr").find('.pbo').text()=="Kilos")
{
if(value<1)
{
$qnty.text(value*1000);
$unit.text("gm");
var data = "action=getPrice&id="+id;
$.post("addBill.php", data, function(json) {
alert(json.price);
$price.text(json.price*value);
}, 'json');
}
}
});
关于javascript - 为什么我得到 NaN 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41374330/