2011-05-16 59 views
1

我有以下腳本的正常工作:

$.ajax({ 
    url: 'serverside_script', 
    type: 'GET', 
    dataType: 'json', 
    error: function(xhr, status, error) { 
     alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText); 
    }, 
    success: function(results) { 
     var len = results.length; 

     for(i=0; i<len; i++) { 
      $("#tabs").tabs("add","tabs.aspx?tab=" + results[i].key, results[i].value) 
     }; 
    } 
}); 

是否有可能轉換的for循環更jquery的類型$。每次循環?

回答

7

爲什麼是這樣。提供的函數最多可以接受兩個參數:首先是鍵,最後是迭代的單個對象。

$.each(results, function(i, obj) { 
    $("#tabs").tabs("add","tabs.aspx?tab=" + obj.key, obj.value) 
}); 

有關jQuery.each函數的更多信息,請參閱the reference

+0

打了我幾秒鐘:D – barfoon 2011-05-16 15:18:41

+0

額外的右大括號吃了你的代碼@line 3.:[ – lsuarez 2011-05-16 15:19:42

0
$.each(results, function(index, item) { 
    $("#tabs").tabs("add","tabs.aspx?tab=" + item.key, item.value) 
}); 
1

有更好的表現:

var tabs = $("#tabs"); 
$.each(results, function(index, item) { 
    tabs.tabs("add","tabs.aspx?tab=" + item.key, item.value); 
}); 

執行$( 「#標籤」)每次都是沒有必要的。

+0

+1用於緩存'$(「#tabs」)'選擇。在循環內重新運行它是錯誤的。 – user113716 2011-05-16 15:23:48