2013-02-10 3 views
1

Хорошо, я хочу, чтобы обработать другой яваскрипт запрос значения Еогеасп возвращенного в ответ JSON из запроса JQuery, Вот текущий код, я использую для этого запросаForEach значения массива в JQuery JSON результате

function waitForEvents(){ 
$.ajax({ 
      type: "GET", 
      url: "/functions/ajax.php?func=feed&old_msg_id="+old_msg_id, 

      async: true, /* If set to non-async, browser shows page as "Loading.."*/ 
      cache: false, 
      timeout:50000, /* Timeout in ms */ 

      success: function(data){ 
       var json = jQuery.parseJSON(data); 
       **//Foreach json repsonse['msg_id'] call another function** 
       setTimeout('waitForEvents()',"1000"); 
      }, 

      error: function (XMLHttpRequest, textStatus, errorThrown){ 
       alert("Error:" + textStatus + " (" + errorThrown + ")"); 
       setTimeout('waitForEvents()',"15000");  
      }, 
}); 
}; 

для каждая переменная json response ['msg_id'] Я хочу вызвать другую функцию javascript, но не знаю, как обрабатывать массив с помощью foreach в javascript, любая идея как?

+0

возможно дубликат [У меня есть вложенную структуру данных/JSON, как я могу получить доступ к конкретное значение?] (http://stackoverflow.com/questions/11922383/i-have-a-nested-data-structure-json-how-can-i-access-a-specific-value) –

ответ

2

Как вы уже используете JQuery, вы можете использовать функцию $ .each:

http://api.jquery.com/jQuery.each/

$.each(json.msg_id, function (index, value) { 
    // Do something with value here, e.g. 
    alert('Value ' + index + ' is ' value); 
}) 
+0

Спасибо, работает идеально ! –

+0

Без проблем, мое удовольствие. – ChrisC

0

использовать простой цикл, вероятно, быстрее, чем для каждого

function myfunction(id){ 
    alert("myid:"+id): 
} 

var i=0; 
for (i=0; i< json.length;i++){ 
    var thisId = json[i].msg_id; 
    myfunction(thisId); 
} 

Проще:

function myfunction(id){ 
    alert("myid:"+id): 
} 

var i=0; 
for (i=0; i< json.length;i++){ 
    myfunction(json[i].msg_id); 
} 

, так как вы спросили:

function checkArrayElements(element, index, array) { 
    console.log("a[" + index + "] = " + element); 
    var myId = element.msg_id; 
}; 
json.forEach(checkArrayElements); 

и обсуждение в случае старых браузеров, где не implimented: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach, так что вы можете сделать это

+0

Я делаю предположение, что msg_id находится в каждом элементе на корневом уровне. –

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