问题描述:
开发过程遇到一个问题,我举个例子。
图1是第一个循环出来的效果,正常的。
图2数据循环出来了,但是想要对应的数字和tab1对应的数字的颜色一样
JS
$.ajax({
type: "get",
dataType: "json",
url: "xx.json&type="+type,
success: function (data) {
var datas = data['data']
var str = "";
$.each(datas,function(index,element){
str +='<div class="list">'+index+'<ul>';
for(i in element){
if (index=="红队") {
index = 'red';
}else if (index=="黄队") {
index = 'ye';
}else if (index=="蓝队") {
index = 'blue';
}
str += "<li><i class="+index+">"+element[i]+"</i></li>";
}
str += '</ul></div>';
})
$(".tabcon .con").html(str);
},
error: function () {
showTip("查询失败")
}
});
Json:
//type=tab1的时候
{
"state": 1,
"message": "ok",
"data": {
"红队": [
"1",
"2",
"7"
],
"蓝队": [
"3",
"4",
"8",
"9"
],
"绿队": [
"5",
"6",
"10"
]
}
}
//type=tab2的时候
{
"state": 1,
"message": "ok",
"data": {
"男生": [
"1",
"2",
"5",
"8",
"10"
],
"女生": [
"3",
"4",
"6",
"7",
"9"
]
}
}
研究了好久实在是解决不了了来这边问问,以前没接触过ajax,对着这些处理很不清楚,最近才开始学的,很多不懂,希望大佬们指点一下。
从第一次得到的 JSON 生成一个从队号到颜色的映射表,第二次获得数据之后查表就好。
如果深入思考,可以在每次获取数据之后完善这个映射表,生成一个从队号到队属性的映射表(key-value 数据库的表结构)
再深入一点,其实从后台就可以一次性返回一个
队号-属性
的JSON,这个 JSON 取到之后缓存在前端,每个 Tab 都可以使用……