浏览 14018 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-23
最后修改:2010-09-12
document.getElementById("id").readOnly=true; 二、动态给表插入行: function addRow(){ //动态插入一行,mediaMes是表对象 var oRow1=mediaMes.insertRow(mediaMes.rows.length); //设置tr的id oRow1.id="tr"+thisId; //获得表总的行数 var aRows=mediaMes.rows; //获得新添加行的列集合 var aCells=oRow1.cells; //再新添加的行里面插入一个列 var oCell1_1=aRows[oRow1.rowIndex].insertCell(aCells.length); //=================设置列的样式====================== oCell1_1.align="center"; var oStyle1 = oCell1_1.getAttribute("style"); //Ie浏览器动态设置样式不能直接给行或列指定class属性 //要先把样式放到一个对象的attribute里面,然后在把这个对象设置到行或列里面去 // ie if(oStyle1 == "[object]") { oStyle1.setAttribute("cssText","border-right: 1px solid #003399;border-bottom: 1px solid #003399;"); oCell1_1.setAttribute("style",oStyle1 ); } else { oCell1_1.setAttribute("class","td_border" ); } var cell1="<input type='text' name="user" id='user'/>"; oCell1_1.innerHTML=cell1; } 三、 function delRow(rowId){ var poss=document.getElementById(rowId); mediaMes.deleteRow(poss.rowIndex); } 四、动态移动table里面的行(tr) // 先获得当前行的父节点,就是table var parent=aRows[sort].parentNode; //table移除一个行,返回的对象就是被移除的行 var orgNode=parent.removeChild(aRows[sort+1]); var destNode=aRows[sort]; //在一个行前面把这个行插入 parent.insertBefore(orgNode,destNode); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-23
insertRow和insertCell这两个方法都是直接在dom中插入node,每次操作都会导致浏览器进行一次渲染页面的操作,数据量大的情况下性能表现不好。
而且insertRow(mediaMes.rows.length)这样的代码大可以用insertRow(-1)代替 |
|
返回顶楼 | |
发表时间:2009-04-27
keshin 写道 insertRow和insertCell这两个方法都是直接在dom中插入node,每次操作都会导致浏览器进行一次渲染页面的操作,数据量大的情况下性能表现不好。 而且insertRow(mediaMes.rows.length)这样的代码大可以用insertRow(-1)代替 谢谢提醒 |
|
返回顶楼 | |
发表时间:2009-05-19
其实我没有看懂
|
|
返回顶楼 | |
发表时间:2009-06-15
keshin 写道 insertRow和insertCell这两个方法都是直接在dom中插入node,每次操作都会导致浏览器进行一次渲染页面的操作,数据量大的情况下性能表现不好。
而且insertRow(mediaMes.rows.length)这样的代码大可以用insertRow(-1)代替 那有什么好的建议没? 因为目前我碰到了这个问题 |
|
返回顶楼 | |
发表时间:2009-06-17
使用createElement来替换insertRow和insertCell可以再一定程度上解决性能问题
例: 使用 var row = document.createElement("TR"); tbody.appendChild( row ); 而不是 var row = tbody.insertRow(); |
|
返回顶楼 | |