司生产NaN
我想分开变量number
100
并得到NaN
。我是jQuery的新手,任何人都可以帮助我理解我做错了什么?司生产NaN
$.each(data.products, function (i, data) {
var div_data = "<p>" + data.title + "<br/>" + data.description + "</p>";
div_data += '<img src="' + data.imageUrl + '" title="Loading..." alt="Loading...">';
div_data += '<p><a href="' + data.url + '">Buy</a></p>';
$(div_data).appendTo("#testjson");
number = '<div class="number">' + data.price + '</div>';
$('#myElement').text((number/100));
});
首先你设置number
为一个字符串:
number = '<div class="number">'+ data.price + '</div>';
然后你将这个字符串由100
在JavaScript导致NaN
这是短期的Not a Number
。这是指定in the spec。
一个可能的解决办法是除以100的数字本身,而不是HTML字符串,例如:
var number = data.price/100;
$('#myElement').text(number);
嵌套式div这不会附加到#myElement
虽然。
谢谢,明白了,那么如何从我的JSON数据中获取数字而不是字符串呢? – leanda 2013-03-24 15:20:41
@ user2204755:这不是JSON,'data'是一个普通对象,我认为我们可以假设'data.price'是一个数字。如果它是数字字符串,分区会自动将其转换为数字。 – 2013-03-24 15:21:53
您的数据不是JSON,它是一个JavaScript对象,JSON是一种数据交换格式,您通常在其中将JavaScript对象序列化为字符串。 data.price似乎是你正在寻找的。 – 2013-03-24 15:22:00
你可以像下面这样做
number = '<div class="number">' + (data.price/100) + '</div>';
$('#myElement').text((number));
这是你在的.text)做什么(
('<div class="number">' + (data.price/100) + '</div>')/100
我看不出有任何的JSON在你的代码。如果你指的是'data',那看起来是一个普通的对象。 JSON是信息的文本表示,如XML,YAML或CSV。 – 2013-03-24 15:22:22