例如 $tr.replasce(“/" ..... 得到不要使用foreach遍历每个td,我现在的方法就是这样,append速度很慢,100行*20td =2000次append话费1S的时间。。。我是为了方便控制原生的table的每单元格样式。http://ask.csdn.net/questions?type=reward#
如果节点多,注意页面的repaints,要把节点隐藏或者从页面中移除出来,避免没append一个节点,会重绘一次。
var p =$tr.parent();
$tr.remove();
tr.replasce("/....);的节点添加代码
最后p.append($tr);
可以用div括起table,获取div的innerHTML后替换好
<div id="dv">
<table border="1" id="tb">
<tr><td abc="tt">xxxxxx14</td></tr>
<tr><td>xxxxxx15</td></tr>
<tr><td>xxxxxx16</td></tr>
<tr><td>xxxxxx17</td></tr>
<tr><td>xxxxxx19</td></tr>
<tr><td>xxxxxx21</td></tr></table>
</div>
<script>
var s = document.getElementById('dv').innerHTML;
s = s.replace(/<td([^>]*)>([\s\S]+?)<\/td>/gi, '<td$1><div>$2</div></td>');
alert(s)
document.getElementById('dv').innerHTML = s;
</script>