2013-03-24 2 views
2

Я пытаюсь разделить переменную 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)); 

}); 
+1

Я не вижу JSON в коде. Если вы ссылаетесь на 'data', это выглядит как обычный объект. JSON представляет собой текстовое представление информации, например XML, YAML или CSV. –

ответ

4

Сначала вы устанавливаете 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 хотя.

+0

Спасибо, получилось, так как мне получить этот номер из моих данных JSON как число, а не строку? – leanda

+1

@ user2204755: Это не JSON, 'data' является нормальным объектом, и я думаю, мы можем предположить, что' data.price' является числом. Если это числовая строка, подразделение автоматически преобразует ее в число. –

+0

Ваши данные не JSON, это объект JavaScript, JSON - это формат обмена данными, в котором вы часто сериализуете JavaScript-объекты как строки. data.price - это то, что вы ищете. –

2

Вы можете сделать это, как этот

number = '<div class="number">' + (data.price/100) + '</div>'; 
    $('#myElement').text((number)); 

Это то, что вы делаете в .text()

('<div class="number">' + (data.price/100) + '</div>')/100 
Смежные вопросы