87,907
社区成员
发帖
与我相关
我的任务
分享
<table border="1">
<script>
var testData = [
{ nm1: "户内门" },
{ nm2: { name: "全屋", num: 3 }, nm3: { name: "户内门", num: 3 }, nm4: { name: "群升", num: 3 }, data: { name: "M-01", des: "清新象牙白实木复合户内门" } },
{ nm2: { name: "全屋", num: 0 }, nm3: { name: "户内门", num: 0 }, nm4: { name: "群升", num: 0 }, data: { name: "M-02", des: "高级白影木复合户内门" } },
{ nm2: { name: "全屋", num: 0 }, nm3: { name: "户内门", num: 0 }, nm4: { name: "群升", num: 0 }, data: { name: "M-03", des: "高级黑檀实木复合户内门" } },
{ nm1: "餐厅、客厅、走道" },
{ nm2: { name: "墙面", num: 5 }, nm3: { name: "乳胶漆", num: 3 }, nm4: { name: "立邦", num: 3 }, data: { name: "M-01", des: "立邦优雅象牙白" } },
{ nm2: { name: "墙面", num: 0 }, nm3: { name: "乳胶漆", num: 0 }, nm4: { name: "立邦", num: 0 }, data: { name: "M-02", des: "立邦皎洁月光白" } },
{ nm2: { name: "墙面", num: 0 }, nm3: { name: "乳胶漆", num: 0 }, nm4: { name: "立邦", num: 0 }, data: { name: "M-03", des: "立邦曼哈顿浅棕" } },
{ nm2: { name: "墙面", num: 0 }, nm3: { name: "墙纸", num: 2 }, nm4: { name: "X", num: 2 }, data: { name: "WP-01", des: "" } },
{ nm2: { name: "墙面", num: 0 }, nm3: { name: "墙纸", num: 0 }, nm4: { name: "X", num: 0 }, data: { name: "WP-01", des: "" } },
];
var s = '';
for (var i = 0; i < testData.length; i++) {
if (testData[i].nm1) {
s += '<tr><th colspan="5">' + testData[i].nm1 + '</th></tr>';
}
else {
s += "<tr>"
+ (testData[i].nm2.num ? '<td rowspan="' + testData[i].nm2.num + '">' + testData[i].nm2.name + '</td>' : '')
+ (testData[i].nm3.num ? '<td rowspan="' + testData[i].nm3.num + '">' + testData[i].nm3.name + '</td>' : '')
+ (testData[i].nm4.num ? '<td rowspan="' + testData[i].nm4.num + '">' + testData[i].nm4.name + '</td>' : '')
+ '<td>' + testData[i].data.name + '</td>' + '<td>' + testData[i].data.des + '</td>'
+ '</tr>';
}
}
document.write(s);
</script>
</table>
<tbody>
<{each testData as lev1 l1Idx}>
<{if lev1.nm1}>
<tr>
<td colspan="5" align="center" style="width:100%;font-size:15px;background-color:#FFC504;"><{lev1.nm1}></td>
</tr>
<{ else }>
<tr>
<{if lev1.nm2.num > 0}>
<td rowspan="<{lev1.nm2.num}>" align="center" style="width:20%;font-size:15px;background-color:#FFC504;"><{lev1.nm2.name}></td>
<{/if}>
<{if lev1.nm3.num > 0}>
<td rowspan="<{lev1.nm3.num}>" align="center" style="width:20%;font-size:15px;background-color:#FFC504;"><{lev1.nm3.name}></td>
<{/if}>
<{if lev1.nm4.num > 0}>
<td rowspan="<{lev1.nm4.num}>" align="center" style="width:20%;font-size:15px;background-color:#FFC504;"><{lev1.nm4.name}></td>
<{/if}>
<td align="center" style="width:20%;font-size:15px;background-color:#FFC504;"><{lev1.data.name}></td>
<td align="center" style="width:20%;font-size:15px;background-color:#FFC504;"><{lev1.data.des}></td>
</tr>
<{/if}>
<{/each}>
</tbody>
根据这种数据格式
testData:[
{nm1:"户内门"},
{nm2:{name:"全屋",num:3},nm3:{name:"户内门",num:3},nm4:{name:"群升",num:3},data:{name:"M-01",des:"清新象牙白实木复合户内门"}},
{nm2:{name:"全屋",num:0},nm3:{name:"户内门",num:0},nm4:{name:"群升",num:0},data:{name:"M-02",des:"高级白影木复合户内门"}},
{nm2:{name:"全屋",num:0},nm3:{name:"户内门",num:0},nm4:{name:"群升",num:0},data:{name:"M-03",des:"高级黑檀实木复合户内门"}},
{nm1:"餐厅、客厅、走道"},
{nm2:{name:"墙面",num:5},nm3:{name:"乳胶漆",num:3},nm4:{name:"立邦",num:3}, data: {name:"M-01",des:"立邦优雅象牙白"}},
{nm2:{name:"墙面",num:0},nm3:{name:"乳胶漆",num:0},nm4:{name:"立邦",num:0}, data: {name:"M-02",des:"立邦皎洁月光白"}},
{nm2:{name:"墙面",num:0},nm3:{name:"乳胶漆",num:0},nm4:{name:"立邦",num:0}, data: {name:"M-03",des:"立邦曼哈顿浅棕"}},
{nm2:{name:"墙面",num:0},nm3:{name:"墙纸",num:2},nm4:{name:"X",num:2}, data: {name:"WP-01",des:""}},
{nm2:{name:"墙面",num:0},nm3:{name:"墙纸",num:0},nm4:{name:"X",num:0}, data: {name:"WP-01",des:""}},
],
自己写的遍历出JSON数据中的值: 但只是把所有类放在了同一个数组中,没有实现一一对应,比如哪几个是一个类下的子项:
var title={};
var nm1={};
var newnm1={};
var nm2={};
var newnm2={};
var nm3={};
var newnm3={};
var ldata={};
var newldata={};
function getTest(specs){
for(var i=0;i<specs.length;i++){
if(!title.contains(specs[i].title)){
if(newnm1){
nm1.push(newnm1);
}
if(newnm2){
nm2.push(newnm2);
}
if(newnm3){
nm3.push(newnm3);
}
if(newldata){
ldata.push(newldata);
}
newnm1={};
newnm2={};
newnm3={};
newldata={};
title.push(array[i].title);
newnm1.push(array[i].children.space);
newnm2.push(array[i].children.brand);
newnm3.push(array[i].children.model);
newldata.push(array[i].children.name);
}else {
if(!newnm1.contains(array[i].children.space)){
nm2.push(newnm2);
newnm2={};
newnm1.push(array[i].children.space);
}else {
if(!newnm2.contains(array[i].children.brand)){
nm3.push(newnm3);
newnm3={};
newnm2.push(array[i].children.brand);
newnm3.push(array[i].children.model);
newldata.push(array[i].children.name);
}else {
if(!newnm3.contains(array[i].children.model)){
ldata.push(newldata);
newldata={};
newnm3.push(array[i].children.name);
newldata.push(array[i].children.name);
}else {
newldata.push(array[i].children.name);
}
}
}
}
}
}