关于JS在IE与FF里兼容的问题

下面这段代码在FF里正常的,但是在IE下不能正常显示,请问是哪段有问题
[code="java"]function goright() {
alert("aa");
var boxes = document.getElementsByName("checka");
var taba = document.getElementById("ta");
var tabb = document.getElementById("tb");
var cou = new Array();
var j = 0;

alert(boxes.length);
for (var i = 0; i < boxes.length; i++) {
    if (boxes[i].checked) {
        cou[j] = i;
        j++
    }
}
for (var i = 0; i < cou.length; i++) {
    if (cou[i] - i < taba.rows.length) {
        var a = tabb.insertRow(tabb.rows.length);
        a.innerHTML = taba.rows[cou[i] - i].innerHTML;
        taba.deleteRow(cou[i] - i);
    }
}

}[/code]
其中checka是一组checkbox,ta tb分别是2个table,这个方法的目的是把选中的a表中的tr移动到b表中,在ff下正常,IE下就不好用了,大家帮忙看下谢谢

标签在JS中并不是作为一个一般的HTMLObject来处理,在IE中并没有innerHTML属性,所以无法使用innerHTML。而且如果表a ,表b的列数不同的话,这样操作也会带来问题。
我简单修改了一下你的代码。可以在FF以及IE8下正常运行。你可以参考下。
[code="java"]<br> function goright() {<br> var boxes = document.getElementsByName(&quot;checka&quot;);<br> var taba = document.getElementById(&quot;ta&quot;);<br> var tabb = document.getElementById(&quot;tb&quot;);<br> var cou = new Array();<br> var j = 0;</p> <pre><code>for (var i = 0; i &lt; boxes.length; i++) { if (boxes[i].checked) { cou[j] = i; j++; } } for (var i = 0; i &lt; cou.length; i++) { if (cou[i]-i&lt; taba.rows.length) { var a = tabb.insertRow(tabb.rows.length); for(var j = 0; j &lt; taba.rows[cou[i]-i].cells.length; j++){ a.insertCell(a.cells.length); a.cells[a.cells.length-1].innerHTML = taba.rows[cou[i]-i].cells[j].innerHTML; } taba.deleteRow(cou[i] - i); } } </code></pre> <p>}<br> [/code]

IE和FF有时候取对象的方式不一样,这个都可以查到。但是不建议你这样写,还是建议你使用类似JQUERY的工具来做,就不用考虑这些问题了,而且浏览器也不止IE和FF两种。

你看看是不是 19 行出的问题。。。