chrome 下 insertRow()方法的注意之处

ie6


firefox


opera


insertRow


支持, 默认参数-1,默认添加到最后


支持, 但不支持默认参数


支持,默认参数0
默认添加到最前


appendChild


不支持


支持,但是增加 tr后不影响rows


支持,效果同insertRow(-1),影响rows


//向table追加一个空行:
var otr = otable.insertRow(-1);
var otd = document.createElement(“td”);
otd.innerHTML = ” “; 
otd.className = “XXXX”; 
otr.appendChild(otd);


这样就可以运行在这三种浏览器上了



insertRow([iIndex])),insertCell([iIndex]) 在firefox出错原因。
在firefox下,这2个方法必须要给出 索引号。IE默认是 -1. 表示插入最后。



IE默认是添加最后
chrome 默认是添加在前面
firefox 必须给出索引参数 如:-1 为最后面



在IE和FF中 insertRow和insertCell有一个小小的区别


在IE中可以这样调用:


var bgame_table = document.getElementById(‘game_table’); 
nowTR = bgame_table.insertRow();


nowTD = nowTR.insertCell();


但在ff中,上面这样调用就会报错了:


所以在FF和ie都可以这样调用:


var bgame_table = document.getElementById(‘game_table’); 
nowTR = bgame_table.insertRow(-1);


nowTD = nowTR.insertCell(-1);


-1代表什么意思呢?


原来-1代表:插入(行)单元格到 cells(rows) 集合内的最后一个。


IE默认值了-1,但FF就没有默认值的。


所以为了兼容性好,我建议大家都是加上-1。



示例:


<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>


<HTML>


<HEAD>



<TITLE>InsertRow() and InsertCell() in FireFox and IE</TITLE>


</HEAD>



<BODY>


<SCRIPT LANGUAGE=”JavaScript”>


<!–


var i = 1;


function insRow()


{


var j = 1;


var obj=document.getElementById(‘myTable’).insertRow(-1);


obj.insertCell(-1).innerHTML = “<font color=red>第”+i+”行第1列</font>”;


obj.insertCell(-1).innerHTML = “<font color=red>第”+i+”行第2列</font>”;


obj.insertCell(-1).innerHTML = “<font color=red>第”+i+”行第3列</font>”;


i++;


}


//–>


</script>



<table id=”myTable” border=”1″>


</table>


<form>


<input type=”button” onclick=”insRow();” value=”新增一行”>


</form>


</BODY>


SyntaxHighlighter.highlight();