您好,我的代码有问题。我不知道如何table.appendchild(row)
。我尝试用append或appendchild来做到这一点,但没有用。
我的代码:
var body = document.getElementsByTagName('body')[0];
var table = document.createElement('table');
body.appendChild(table);
var createrow = function(c1,c2){
var row = document.createElement('tr');
row.appendChild(c1);
row.setAttribute('class', 'row')
row.appendChild(c2);
return row;
}
var createcell = function(value){
var cell = document.createElement('td');
cell.setAttribute('class', 'cell');
cell.innerText=value;
table.appendChild(cell);
return cell;
}
body.appendChild(createrow(createcell('Ion'),createcell('24')))
body.appendChild(createrow(createcell('Gigle'),createcell('26')))
答案 0 :(得分:4)
target.appendChild(another)
的意思是“将这个元素“另一个”作为子元素放置在“目标”元素中。
您在代码中犯了一些错误。第一个是您的createcell
函数:
var createcell = function(value){
var cell = document.createElement('td');
cell.setAttribute('class', 'cell');
cell.innerText=value;
// table.appendChild(cell); -- uncommented
return cell;
}
此功能的目的是为您的表创建一个“单元格”。您正在执行此操作,但同时也正在执行table.appendChild(cell);
,这意味着您正在将该单元格放置在表中。那是不对的。我没有评论。
您的createrow
函数似乎正确。
最后,您正在做
body.appendChild(createrow(createcell('Ion'),createcell('24')))
表示“获取createrow
函数的结果(这是您的<tr>
元素)并将其放在元素“ body”中”。您的body
是<body>
元素。不是您想让您的行。您要将行放置在表中。因此,您需要将其更正为
table.appendChild(createrow(createcell('Ion'),createcell('24')))
的意思是“创建一行并将其作为子元素放置在元素“表”中”。那么您的table
是<table>
元素。现在,该行已放置在正确的位置。