我有一个需要在两个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"}
]
}
]
}
答案 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...
}
});
});
});