结合两个$ .each函数

时间:2014-12-29 06:52:39

标签: jquery json

我有一个需要在两个json数组上运行的函数。当我为每个数组重复该函数时,它工作正常。但绝对不是编写代码的正确方法。我需要结合$ .each对于被困在的json数组。

这是我的功能:

$(function() {
   $.getJSON('data.json', function(data) {
       $.each(data.Full_Talktime, function(index, plan) {


            var  tblPara = $('<p class="col1">').html("<b>Talktime</b><br>");
            var  tblValidity = $('<p class="col2">').html("<b>Validity</b><br>");
            var  tblPrice = $('<p class="col3">');
            var  tblDescription = $('<p class="row2">').html("<b>Description</b><br>");
            var  endline =$('<div class="end">');
            tblPara.append('<div class="para">' + plan.Talktime + '</div>');
            tblValidity.append('<div class="para">' + plan.Validity + '</div>');
            tblPrice.append('<div class="col3para">' + plan.Price + '</div>');
            tblDescription.append('<div class="para">' + plan.Description + '</div>');
    console.log(plan);

           $(".content").append(tblPara).append(tblValidity).append(tblPrice).append(tblDescription).append(endline);

     });
     $.each(data.Special_Recharge, function(index, plan) {


            var  tblPara = $('<p class="col1">').html("<b>Talktime</b><br>");
            var  tblValidity = $('<p class="col2">').html("<b>Validity</b><br>");
            var  tblPrice = $('<p class="col3">');
            var  tblDescription = $('<p class="row2">').html("<b>Description</b><br>");
            var  endline =$('<div class="end">');
            tblPara.append('<div class="para">' + plan.Talktime + '</div>');
            tblValidity.append('<div class="para">' + plan.Validity + '</div>');
            tblPrice.append('<div class="col3para">' + plan.Price + '</div>');
            tblDescription.append('<div class="para">' + plan.Description + '</div>');
    console.log(plan);

               $(".content").append(tblPara).append(tblValidity).append(tblPrice).append(tblDescription).append(endline);

     });
   });
});

这是我的json:

{
    "Ai": [
    {"Full_Talktime":[
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"}, 
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"}
],
"Special_Recharge":[
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 3000", "Description":"200 full talktime"}, 
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 3000", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 3000", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"},
{"Talktime":"300", "Validity":"Lifetime","Price":"Rs 300", "Description":"200 full talktime"}
]
}
    ]
}

2 个答案:

答案 0 :(得分:0)

假设您只是想减少重复代码,可以在each中使用函数引用:

$.each(data.Full_Talktime, printPlan);
$.each(data.Special_Recharge, printPlan);

function printPlan(index, plan) {
    var  tblPara = $('<p class="col1">').html("<b>Talktime</b><br>");
    var  tblValidity = $('<p class="col2">').html("<b>Validity</b><br>");
    var  tblPrice = $('<p class="col3">');
    var  tblDescription = $('<p class="row2">').html("<b>Description</b><br>");
    var  endline =$('<div class="end">');
    tblPara.append('<div class="para">' + plan.Talktime + '</div>');
    tblValidity.append('<div class="para">' + plan.Validity + '</div>');
    tblPrice.append('<div class="col3para">' + plan.Price + '</div>');
    tblDescription.append('<div class="para">' + plan.Description + '</div>');
    console.log(plan);
    $(".content").append(tblPara).append(tblValidity).append(tblPrice).append(tblDescription).append(endline);
});

答案 1 :(得分:0)

$(function() {
    $.getJSON('data.json', function(data) {
        $.each(data.AI, function(index, plan) {
            $.each( plan,function(i,obj) {
                   // i will be Full_Talktime,Special_Recharge iteratively..
                   var recharge_instance = obj //obj will be the object and u can access like obj.Talktime;
                  // print stuff out here...
            }
        });
    });
});