- 18
- 3月
在做Keyword.php这个页面时,需要动态向表格中添加、删除行。
在不断败、修改、再失败、再修改后,终于找到了个能用的方法:
添加行:
var _tr=T.insertRow(0);
_tr.id=”row1″;
var _td=_tr.insertCell(0);
var _tn=document.createTextNode(“第一列”);
_td.appendChild(_tn);
var _td=_tr.insertCell(1);
var _tn=document.createTextNode(“第二列”);
_td.appendChild(_tn);
《Ajax基础教程》里的向tbody中appendChild()的方法在我的IE中没有成功(还是不显示表格),不过我这种方法至少从表面上看应该会引起浏览器对表格的多次重构,效率应该不是很高。不知道还有什么好的跨浏览器的方法。
删除行:
在表格的每一行都为tr设置了id,通过该id删除该行
_row=document.getElementById(“row1″);
T.firstChild.removeChild(_row);
其中
T.firstChild是用来获得tbody这个对象的,tr为tbody的直接子对象,而不是table!
注意:
在html生成的静态表格中要采用以下的样式:
<table id=”myTable” width=”400″ border=”1″ bordercolor=”#000000″><tbody>
……
</tbody>
</table>
关键是那个<tbody>一定要紧跟在<table>之后,否则FF会认为tbody前有一个TextNode,T.firstChild就不是指向tbody了。