用javascript创建表
我正在尝试用javascript创建一个表。我有下面的代码-用javascript创建表,javascript,html,html-table,Javascript,Html,Html Table,我正在尝试用javascript创建一个表。我有下面的代码- function resultCreate(){ var tbl = document.createElement('table'); tbl.style.width = '500px'; tbl.style.marginTop = '30px'; tbl.style.border = '1px solid black'; for(var i=0;i<6;i++){ var
function resultCreate(){
var tbl = document.createElement('table');
tbl.style.width = '500px';
tbl.style.marginTop = '30px';
tbl.style.border = '1px solid black';
for(var i=0;i<6;i++){
var tr = tbl.insertRow();
tr.style.border = '1px sold black';
for(var j=0;j<6;j++){
if(i === 0 && (j === 3 || j === 4 || j === 5)){
break;
}
else if(i === 1 && (j === 0 || j === 1)){
var td = tr.insertCell();
td.style.border = '1px sold black';
}
else{
var td = tr.insertCell();
td.appendChild(document.createTextNode('hello'));
td.style.border = '1px sold black';
if(i === 0 && j === 2){
td.setAttribute('colSpan', '4');
}
if(i === 2 && j === 0){
td.setAttribute('rowSpan', '4');
}
}
}
}
body.appendChild(tbl);
}
resultCreate();
但它会删除除第一列之外的整个第三、第四和第五行
整个代码如下所示-
function resultCreate(){
var tbl = document.createElement('table');
tbl.style.width = '500px';
tbl.style.marginTop = '30px';
tbl.style.border = '1px solid black';
for(var i=0;i<6;i++){
var tr = tbl.insertRow();
tr.style.border = '1px sold black';
for(var j=0;j<6;j++){
if(i === 0 && (j === 3)){
break;
}
else if((i == 3 && j == 0) || (i == 4 && j == 0) || (i == 5 && j == 0)){
break;
}
else if(i === 1 && (j === 0 || j === 1)){
var td = tr.insertCell();
td.style.border = '1px sold black';
}
else{
var td = tr.insertCell();
td.appendChild(document.createTextNode('hello'));
td.style.border = '1px sold black';
if(i === 0 && j === 2){
td.setAttribute('colSpan', '4');
}
if(i === 2 && j === 0){
td.setAttribute('rowSpan', '4');
}
}
}
}
body.appendChild(tbl);
}
resultCreate();
函数resultCreate(){
var tbl=document.createElement('table');
tbl.style.width='500px';
tbl.style.marginTop='30px';
tbl.style.border='1px纯黑';
对于(var i=0;i尝试以下方法:
function resultCreate(){
var tbl = document.createElement('table');
tbl.style.width = '500px';
tbl.style.marginTop = '30px';
tbl.style.border = '1px solid black';
for(var i=0;i<6;i++){
var tr = tbl.insertRow();
tr.style.border = '1px sold black';
for(var j=0;j<6;j++){
if(i === 0 && (j === 3 || j === 4 || j === 5)){
break;
}
else if( i > 2 && j === 5){
break;
}
else if(i === 1 && (j === 0 || j === 1)){
var td = tr.insertCell();
td.style.border = '1px sold black';
}
else{
var td = tr.insertCell();
td.appendChild(document.createTextNode('hello'));
td.style.border = '1px sold black';
if(i === 0 && j === 2){
td.setAttribute('colSpan', '4');
}
if(i === 2 && j === 0){
td.setAttribute('rowSpan', '4');
}
}
}
}
body.appendChild(tbl);
}
resultCreate();
函数resultCreate(){
var tbl=document.createElement('table');
tbl.style.width='500px';
tbl.style.marginTop='30px';
tbl.style.border='1px纯黑';
对于(var i=0;i,如下面所示,colspan=4的“i==2,j==0”会占用空间,因此“i==3->5,j==0”会推入第二列,因此在末尾会产生一个额外的列
函数resultCreate(){
var tbl=document.createElement('table');
tbl.style.width='500px';
tbl.style.marginTop='30px';
tbl.style.border='1px纯黑';
对于(var i=0;我请编辑您的问题,并使用代码段来生成一个完全可复制的问题。您还可以将(j==3 | | j==4 | | j==5)更改为(j>2),非常感谢。如果这不是问题,您能告诉我代码中哪里出错了吗?“试试这个”对于OP以外的任何人都没有什么帮助。请描述您更改了什么以及为什么。第一个if的逻辑是在j>2时不添加任何元素,因为第三个元素更大。使用相同的逻辑,我添加了if-else,以便在第四行和第四行以下不添加任何元素,因为第一个位置被“更大”占据第三行的第一个元素
function resultCreate(){
var tbl = document.createElement('table');
tbl.style.width = '500px';
tbl.style.marginTop = '30px';
tbl.style.border = '1px solid black';
for(var i=0;i<6;i++){
var tr = tbl.insertRow();
tr.style.border = '1px sold black';
for(var j=0;j<6;j++){
if(i === 0 && (j === 3 || j === 4 || j === 5)){
break;
}
else if( i > 2 && j === 5){
break;
}
else if(i === 1 && (j === 0 || j === 1)){
var td = tr.insertCell();
td.style.border = '1px sold black';
}
else{
var td = tr.insertCell();
td.appendChild(document.createTextNode('hello'));
td.style.border = '1px sold black';
if(i === 0 && j === 2){
td.setAttribute('colSpan', '4');
}
if(i === 2 && j === 0){
td.setAttribute('rowSpan', '4');
}
}
}
}
body.appendChild(tbl);
}
resultCreate();