JSON Number/Text Parsing возвращает некоторые неожиданные результаты

51
3

var thetempaddr0 = '<?php echo home_url(); ?>';
JQuery.ajax({
url: thetempaddr0,
type: 'GET',
dataType: "JSON",
success : function(data) {
console.log(data);
jQuery.each(data, function(index, element) {
jQuery("span#myshoppingcart-news-span").append(jQuery('<div>', {
text: element[0]
}));
});
}
});

Строка console.log(data) выводит на консоль "Объект {201:" 11 ", 209:" 22 "}.

Тем не менее, внутри тега "span # myshoppingcart-news-span", источник браузера печатает:

<div>1</div>
<div>2</div>

Но мне нужно <div>11</div> и <div>22</div>, а не <div>1</div> and <div>2</div> Что случилось с моим кодом ajax?

спросил(а) 2014-12-08T20:30:00+03:00 5 лет, 3 месяца назад
1
Решение
80

Обратите внимание на соотношение:

            jQuery.each(data, function(index, element) {
| |
| |
Object {201: "11", 209: "22"}

element уже является строковым значением внутри вашего объекта. element[0] - это просто первый символ этой строки.

ответил(а) 2014-12-08T20:35:00+03:00 5 лет, 3 месяца назад
36

Удалите [0] для элемента:

var thetempaddr0 = '<?php echo home_url(); ?>';
JQuery.ajax({
url: thetempaddr0,
type: 'GET',
dataType: "JSON",
success : function(data) {
console.log(data);
jQuery.each(data, function(index, element) {
jQuery("span#myshoppingcart-news-span").append(jQuery('<div>', {
text: element // Remove: [0]
}));
});
}
});

[0] в элементе - это индекс для строки. например.:

var element = "987";

element[0] // 9
element[1] // 8
element[2] // 7

ответил(а) 2014-12-08T20:39:00+03:00 5 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема