Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一列html5表拆分为两列?_Javascript_Html_Jquery_Arrays - Fatal编程技术网

Javascript 如何将一列html5表拆分为两列?

Javascript 如何将一列html5表拆分为两列?,javascript,html,jquery,arrays,Javascript,Html,Jquery,Arrays,我有一个包含一些嵌套数组的数组,这些嵌套数组由字符串和对象组成。我想根据超级英雄在对象中的值显示超级英雄的名字,并相应地给他们上色 我成功地呈现了一个表,其中数组中的每个项都有一行(tr),而该行只包含一列(td)。但是我无法呈现每两个项目将有一行(tr)的表。也就是说,每行将有两列(td) 这就是我现在拥有的: 这就是我想要的: 代码如下: consttdels=[]; 常数arr=[ [ “超人”{“飞行”:“是的”} ], [ “蝙蝠侠”{“飞行”:“不”} ], [ '绿色箭头',

我有一个包含一些嵌套数组的数组,这些嵌套数组由字符串和对象组成。我想根据超级英雄在对象中的值显示超级英雄的名字,并相应地给他们上色

我成功地呈现了一个表,其中数组中的每个项都有一行(
tr
),而该行只包含一列(
td
)。但是我无法呈现每两个项目将有一行(
tr
)的表。也就是说,每行将有两列(
td

这就是我现在拥有的:

这就是我想要的:

代码如下:

consttdels=[];
常数arr=[
[
“超人”{“飞行”:“是的”}
],
[
“蝙蝠侠”{“飞行”:“不”}
],
[
'绿色箭头',{'superstrength':'no'}
],
[
企鹅号,{'flight':'yes'}
],
[
沙扎姆,{'flight':'no'}
],
[
“神奇女侠”{“飞行”:“是的”}
],
[
电子人,{'flight':'no'}
],
[
'闪光',{'superstrength':'no'}
],
[
'火星人',{'superstrength':'no'}
],
[
'小丑',{'flight':'no'}
],
[
'罗宾',{'differentWorld':'no'}
]
];
for(设i=0;i
表格{
边框:1px纯黑;
}
表td{
边框:1px纯黑;
}

我们可以将两个单元格分块,并使用对象键和值作为类名

企鹅不会飞。他用了一把飞行伞

Constarr=[[‘超人’、‘飞行’:‘是’]、‘蝙蝠侠’、‘飞行’:‘不’、‘绿箭’、‘超级力量’:‘不’、‘企鹅’、‘飞行’:‘是’、‘沙扎姆’、‘飞行’:‘不’、‘神奇女侠’、‘飞行’:‘是’、‘电子人’、‘飞行’:‘不’、‘闪光’、‘超级力量’:‘不’、‘火星人’、‘超级力量’:‘不’、‘不’、{,['joker',{'flight':'no'}],'robin',{'differentWorld':'no'}];
常量块=(arr,len)=>{
设chunks=[],i=0,n=arr.length;
而(i`${hero[0]}`)
document.querySelector('table tbody').innerHTML=chunk(tdEls,2).map(cnk=>`${cnk.join(“”)}`.join(“”)
表格{
边框:1px纯黑;
}
表td{
边框:1px纯黑;
}
.flightyes{
颜色:红色
}
.航班号{
颜色:绿色
}
超级强悍{
颜色:橙色
}
.不一样{
颜色:蓝色
}

我们可以将两个单元格分块,并使用对象键和值作为类名

企鹅不会飞。他用飞行伞

Constarr=[[‘超人’、‘飞行’:‘是’]、‘蝙蝠侠’、‘飞行’:‘不’、‘绿箭’、‘超级力量’:‘不’、‘企鹅’、‘飞行’:‘是’、‘沙扎姆’、‘飞行’:‘不’、‘神奇女侠’、‘飞行’:‘是’、‘电子人’、‘飞行’:‘不’、‘闪光’、‘超级力量’:‘不’、‘火星人’、‘超级力量’:‘不’、‘不’、{,['joker',{'flight':'no'}],'robin',{'differentWorld':'no'}];
常量块=(arr,len)=>{
设chunks=[],i=0,n=arr.length;
而(i`${hero[0]}`)
document.querySelector('table tbody').innerHTML=chunk(tdEls,2).map(cnk=>`${cnk.join(“”)}`.join(“”)
表格{
边框:1px纯黑;
}
表td{
边框:1px纯黑;
}
.flightyes{
颜色:红色
}
.航班号{
颜色:绿色
}
超级强悍{
颜色:橙色
}
.不一样{
颜色:蓝色
}

具有多个列的表可以由数组数组反映。请尝试从原始数组创建该数组,其中主数组的每个元素表示一个表行,其元素表示单元格。一旦有了这些元素,将其转换为HTML就很容易了。(不用说,这是许多现有解决方案的基本问题)((此外,您需要避免将其视为“拆分HTML表”和“组成HTML字符串”。这是关于(重新)构造数据的,仅此而已)只需将
从推送到数组的内容中移除即可。每两次迭代将它们推送到数组中一次。大多数人使用模运算符(
%
)或者你可以按照@ChrisG的建议重新构造你的数据。重新构造你的数据将允许你编写一次生成HTML的代码,并让它对数据的结构做出反应,所以如果你明天想要三列,你只需重新构造数据而不是代码。嘿@ChrisG,这不是我在代码中所做的吗?snippe我提供的t显示我在主数组中循环,然后根据数据创建TRs和相应的TDs。如果你能用一点代码解释一下你的意思,那就太好了。@HereticMonkey但即使我重新构造数据,我也会面临同样的问题,就像我必须循环数据然后创建TRs一样基于条件的tds?您将面临一个类似的问题,但不是相同的问题。无论如何,您必须将表行的创建与表单元格的创建分开。就我个人而言,我会做一次;创建一个func