我在代码中的每一行创建一个表,两行和两个单元格。为此,我有以下代码:
var t = document.createElement('table');
document.body.appendChild(t);
for (var x = 0; x <= 1; x++) {
var tr = document.createElement('tr');
t.appendChild(tr);
for (var y = 0; y <= 1; y++) {
var td = document.createElement('td');
tr.appendChild(td);
}
}
现在,我需要在第一个单元格中创建一个文本节点,并在第二个单元格中创建一个a
元素。我该怎么做?
答案 0 :(得分:3)
实际上,执行“两步”循环的代码实际上要多于完全写出来的代码:
var t = document.createElement('table'),
trs = [document.createElement('tr'),document.createElement('tr')],
tds = [
[document.createElement('td'),document.createElement('td')],
[document.createElement('td'),document.createElement('td')]
];
trs[0].appendChild(tds[0][0]); trs[0].appendChild(tds[0][1]);
trs[1].appendChild(tds[1][0]); trs[1].appendChild(tds[1][1]);
t.appendChild(trs[0]); t.appendChild(trs[1]);
// now append more stuff here to the tds
document.body.appendChild(t); // do this last - it's better
答案 1 :(得分:1)
var t = document.createElement('table');
document.body.appendChild(t);
for (var x = 0; x <= 1; x++) {
var tr = document.createElement('tr');
t.appendChild(tr);
for (var y = 0; y <= 1; y++) {
var td = document.createElement('td');
tr.appendChild(td);
if(y == 0){
alert("here");
var a = document.createElement('A');
td.appendChild(a);
alert("here");
}
else{
var div = document.createElement('div');
td.appendChild(div);
//Create text node
}
}
}
在循环内部检查y == 0
是否为td
,如果是,那么您就在y == 1
,因此您创建了一个链接。
如果td
您在第二个div
,则创建textnode
将{{1}}替换为您想要的任何内容。
答案 2 :(得分:0)
在你的第二个循环中只检查if(y == 0)然后在td内创建文本,如果(y == 1)则在td内创建一个。
答案 3 :(得分:0)
另一种方法是在文本中定义表格。
例如:
var t = document.createElement('table');
t.innerHTML = "<tr><td>text</td><td><a href='#'>link</a></td></tr><tr><td>text</td><td><a href='#'>link</a></td></tr>";