Я создаю массив, извлекая данные из запроса json ajax. Но использование этого массива в другом операторе $.each
приводит к итерации по каждому символу, а не по каждому значению.
var setInfo = [];
$.ajax({
url: blah,
async: false,
dataType: 'json',
success: function{
$.each(data.photosets.photoset, function(i,photoinfo) {
setInfo.push(photoinfo.id);
}) // completed set values look like 1234,5678,etc..
holler();
})
function holler() {
$.each(setInfo, function(index, value) {
// using each array value in here splits into each
// character rather than each value. So rather than
// iterating through each whole value 1234,5678,etc..
// It is iterating as 1,2,3,4,5,6,7,8,and so on.
var url1 = "http://www.test.com/" + value;
// Rather than http://www.test.com/1234, value is being evaluated as just 1
// so the result is http://www.test.com/1
});
Вот пример ответа json, в котором я получаю идентификатор:
({"photosets":{"photoset":
[{"id":"123456789", "primary":"102932423", "secret":"19ca84349a", "server":"5143", "farm":6, "photos":"52", "videos":0, "title":{"_content":"Thanksgiving 2010"}, "description":{"_content":""}},
{"id":"012345678", "primary":"1294872352", "secret":"983a9c58d1", "server":"5184", "farm":6, "photos":"12", "videos":0, "title":{"_content":"24th Birthday Dinner at McCormick and Schmitts"}, "description":{"_content":""}}]}, "stat":"ok"})
Edit:
Похоже, у меня есть кусок кода, который, я предполагаю, превращал массив в строку:
setInfo += '';
Запустив мой код в консоли на firebug, а на stackoverflow, я могу видеть, что массив теперь отображается как [1234,5678] НО, работающий локально, я получаю странную ошибку jQuery:
uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://code.jquery.com/jquery-1.5.js :: <TOP_LEVEL> :: line 5579" data: no]
Line 0