<html>
<head>
<script>
window.onload=function(){
var tab = document.createElement('table');
tab.id = 'tab';
document.body.appendChild(tab);
for(var i=0;i<10;i++){
for(var k=0;k<4;k++){
var tr = document.createElement('tr');
tr.id = "tr"+i;
var td = document.createElement('td');
td.id='td'+k;
td.innerHTML = "td"+k;
td.onclick=(function(x,y){
return function(){
alert("第 "+(x+1)+" 行,"+"第 "+(y+1)+" 列");
//do somethings
}
})(i,k);
tab.appendChild(tr);
//tab.rows[i].appendChild(td); FF支持,IE不支持
document.getElementById('tr'+i).appendChild(td);//FF、IE都支持
}
}
}
</script>
</head>
<body>
</body>
</html>

解决方案 »

  1.   

    tr.appendChild(td);
    tab.appendChild(tr);
      

  2.   

    你确定你这代码,在IE8下可以出来???我给你修改一下
    window.onload=function(){
            var tab = document.createElement('table');
            var tbody = document.createElement("tbody");
            tab.id = 'tab';
            tab.appendChild(tbody);
            document.body.appendChild(tab);
            for(var i=0;i<10;i++){
             var tr = document.createElement('tr');
                for(var k=0;k<4;k++){
                    tr.id = "tr"+i;
                    var td = document.createElement('td');
                    td.id='td'+k;
                    td.innerHTML = "td"+k;
                    td.onclick=(function(x,y){
                        return function(){
                            alert("第 "+(x+1)+" 行,"+"第 "+(y+1)+" 列");
                            //do somethings
                        }
                    })(i,k);
                    tr.appendChild(td);//FF、IE都支持
                    tbody.appendChild(tr);
                    //tab.rows[i].appendChild(td); FF支持,IE不支持
                    
                }
            }
        }
      

  3.   


    我的问题是:在FF下能够正常显示出来,但是在IE里边什么都不显示,也不抛异常
      

  4.   

    Quote=引用 1 楼 liangws 的回复:]
    楼主都知道解决方法了。。为什么还要问呢
    [/Quote]
    document.getElementById('tr'+i).appendChild(td);//FF、IE都支持
    [虽然都支持,但是在IE下不能显示出来...
      

  5.   

    你这代码在IE下不显示是因为最上面缺少增加W3C标准。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    加上这个IE和火狐就行了,如果不加上面这个,就用我给你写的,把tbody加上,就所有浏览器都支持了。
      

  6.   

    且楼主你的代码顺序上还是有问题的,主要问题在TR为什么放到TD的循环里创建,这样你会创建出来多余的同ID的tr,而你在下面加td的时候又会只拿第一个TR的ID去增加td,因此你界面是看不到有什么错误的,其实存在很大的隐患<table id="tab"><tr id="tr0"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr0"></tr><tr id="tr0"></tr><tr id="tr0"></tr><tr id="tr1"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr1"></tr><tr id="tr1"></tr><tr id="tr1"></tr><tr id="tr2"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr2"></tr><tr id="tr2"></tr><tr id="tr2"></tr><tr id="tr3"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr3"></tr><tr id="tr3"></tr><tr id="tr3"></tr><tr id="tr4"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr4"></tr><tr id="tr4"></tr><tr id="tr4"></tr><tr id="tr5"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr5"></tr><tr id="tr5"></tr><tr id="tr5"></tr><tr id="tr6"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr6"></tr><tr id="tr6"></tr><tr id="tr6"></tr><tr id="tr7"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr7"></tr><tr id="tr7"></tr><tr id="tr7"></tr><tr id="tr8"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr8"></tr><tr id="tr8"></tr><tr id="tr8"></tr><tr id="tr9"><td id="td0">td0</td><td id="td1">td1</td><td id="td2">td2</td><td id="td3">td3</td></tr><tr id="tr9"></tr><tr id="tr9"></tr><tr id="tr9"></tr></table>
      

  7.   

    window.onload= function() {
    var tab = document.createElement('table');
    tab.id = 'tab';
    var tbody=document.createElement('tbody');
    tab.appendChild(tbody);
    for(var i=0;i<10;i++) {
    var tr = document.createElement('tr');
    tr.id = "tr"+i;
    tr.style.height="50px";
    for(var k=0;k<4;k++) {
    var td = document.createElement('td');
    td.id='td'+k;
    td.innerHTML = "td"+k;
    td.style.width="50px";
    td.style.height="50px";
    td.style.lineHeight="50px";
    td.onclick=(function(x,y) {
    return function() {
    alert("第 "+(x+1)+" 行,"+"第 "+(y+1)+" 列");
    //do somethings
    }
    })(i,k);
    tr.appendChild(td);
    } tbody.appendChild(tr);
    }
    document.body.appendChild(tab);
    }你的循环写错了 另外table有tbody