注册 登录
编程论坛 JavaScript论坛

急!javascript 动态生成表格,help!

heqingkelly 发布于 2010-09-26 22:36, 889 次点击
问题:两个文本框,分别代表行列,例如输入3,5后点击按钮,下面出现3行5列的表格,表格里放的是文本框,可以输入值的
下面是我写的在firefox行,但在IE里没反应。
帮我看看这代码?
用innerHTML写,我这个有错?

用innerHTML!有错!
<form action="" method="post" id="f">
<input type="text" id="t1">
<input type="text" id="t2">
<input type="button" id="s1" value="提交" onclick="frm()">
</form>
<table id="tb" border="1" cellpadding="1" cellspacing="1"></table>
<script type="text/javascript">
function frm(){
for(var i=0;i<document.getElementById("t1").value;i++){
var a=document.getElementById("tb");
var row=a.innerHTML="<tr>";
for(var j=0;j<document.getElementById("t2").value;j++){
row.innerHTML="<td>fgfsrewr</td>";
}
a.innerHTML="</tr>";
}
}
</script>

下面在firefox行,IE里不行!帮忙看看,谢谢
<form action="" method="post" id="f">
<input type="text" id="t1">
<input type="text" id="t2">
<input type="button" id="s1" value="提交" onclick="frm()">
</form>
<table border="1" cellpadding="1" cellspacing="1" id="tb"></table>

<script type="text/javascript">
function frm(){
for(var i=0;i<document.getElementById("t1").value;i++){
var row=document.createElement("tr");
document.getElementById("tb").appendChild(row);
for(var j=0;j<document.getElementById("t2").value;j++){
var cell=document.createElement("td");
var a =document.createElement("input");
a.type="text";
cell.appendChild(a);
row.appendChild(cell);
}
}
}
</script>
3 回复
#2
gulimeksoft2010-09-27 10:53
function frm(){
var a=document.getElementById("tb");
for(var i=0;i<document.getElementById("t1").value;i++){
var row=a.insertRow(i);
for(var j=0;j<document.getElementById("t2").value;j++){
var d=row.insertCell(j);
var val=i+"行"+j+"列";
d.innerHTML="<input type='text' value='"+val+"'>";
}
}
}
innerHTML也不能见人就用啊,即使用连接字符串的时候要用innerHTML+=,不能覆盖
#3
poyexyp2010-09-27 13:27
嵌套生成的时候table应该先嵌套tbody,tbody再嵌套tr和td,ff和ie8在没有tbody的情况下也能显示,ie6,7必须有tbody.
#4
heqingkelly2010-09-27 14:36
谢谢两位!
虽然我今天上午几种方法全搞懂了,但还是要谢谢你们!
1