我可以将此for循环转换为$ .each循环吗?

时间:2011-05-16 15:13:52

标签: json jquery

我有以下脚本可以正常工作:

$.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类型$ .each循环?

3 个答案:

答案 0 :(得分:7)

为什么是的。提供的函数最多可以包含两个参数:首先是键,最后是迭代的单个对象。

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

有关jQuery.each函数的更多信息,请参阅the reference

答案 1 :(得分:1)

以获得更好的表现:

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

每次都不需要执行$(“#tabs”)。

答案 2 :(得分:0)

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