我想改变table中checkbox选中行的内容,在网上搜索了一晚上,终于实现了,现在整理如下:
1.定义一个寻找父结点的方法,其函数代码如下:
function searchObjByTagName(obj, tag){
while (obj != null && typeof(obj.tagName) != "undefind") {
if (obj.tagName == tag.toUpperCase())
return (obj);
obj = obj.parentElement;
}
return null;
}
2. 通过选中的checkbox来查找它所在的行(利用上面的函数),并将该行删除;
3.在自己的table刚删除的位置新建一行 ;
4.最后是向tr中添加td,并改变其里面的内容.
其完整的例子如下:
function changerowtext(){
var a = document.getElementsByName("infos")//checkbox的name
for (var i = 0; i < a.length; i++) {
if (a[i].checked) {
//先找到选择的checkbox所在的行,并删除
searchObjByTagName(a[i], "TR").removeNode(true);
//在自己的table刚删除的位置新建一行
var tr = tablename.insertRow(i + 1);//自己table的name
//最后是向tr中添加td,并改变其里面的内容
var td;
for (var j = 0; tablename.rows[0].cells.length; j++) {
td = tr.insertCell();
td.innerHTML = "aaaa";//你要填充的td的内容
}
}
}
}
5.总结一下:这是只是控控制一行,其实也可以控制多行,反正原理都一样,先删除再添加,上面的例子中,我们可以根据i值不同而进行不同的操作。