2013-06-10 5 views
0

Ниже приводится значение data Название переменной:, как получить доступ к каким возвращает JQuery Ajax как массив

[{"pcode":"1","category":"Category_1","ptitle":"Title_1"}, 
{"pcode":"2","category":"Category_2","ptitle":"Title_2"}, 
{"pcode":"3","category":"Category_1","ptitle":"Title_3"}] 

Моя функция JQuery Ajax возвращают выше массив. и я использую приведенный ниже код, чтобы перечислить их детали на странице.

$.each(data,function(ptitle,category){ 
    $("#results").empty().append('<label>'+data.ptitle+' is in '+data.category+'</label><br>'); 
}); 

То, что я хочу, чтобы отобразить с помощью моего кода выше, как:

Title_1 is in Category_1 
Title_2 is in Category_2 
Title_3 is in Category_1 

но все отображаемая:

undefined: undefined 
+2

я упоминал, что вы должны смотреть на [документацию] (Http: // апи. jquery.com/jQuery.each/), чтобы узнать, как работает '$ .each'. Обратный вызов принимает два аргумента, индекс элемента в массиве и сам элемент. Таким образом, это должно быть примерно так: 'function (i, obj) {$ (" # results "). Append ('
'); }); '. Я уточню свой ответ на ваш предыдущий вопрос. Вместо того, чтобы задавать новый вопрос, вы должны обновить свой предыдущий вопрос. –

+0

Возможно, проблема также может быть асинхронным вызовом. – steo

+1

@steo: Посмотрите на OP [предыдущий вопрос] (http://stackoverflow.com/questions/17021216/how-do-i-access-the-array -string-вернулась-на-Jquery-АЯКС-функции). Это не проблема с самим вызовом. –

ответ

1
$("#results").empty(); 
$.each(data, function(index, element){ 
    $("#results").append('<label>'+element.ptitle+' is in '+element.category+'</label><br>'); 
}); 
1

Согласно документации, первый параметр для each является индексом элемент а второй - это сам предмет. Кроме того, плохой идеей является пустой контейнер results на каждой итерации.

var resultsContainer = $("#results"); 
resultsContainer.empty(); 
$.each(data, function(index, item){ 
    resultsContainer.append('<label>'+item.ptitle+' is in '+item.category+'</label><br>'); 
}); 
0

have a look at the docs. обратный вызов использует индекс параметров и значение, сделать это как:

$.each(data, function(i, elem) { 
    $("#results").empty().append('<label>'+elem.ptitle+' is in '+elem.category+'</label><br>'); 
}); 
+0

Вызов '.empty()' здесь не имеет смысла;) –

Смежные вопросы