for_cyan 2008-11-13 20:20
浏览 243
已采纳

javascript控制大量页面对象反应迟钝,如何解决

页面上有600个tr,id分别为id1,id2...id600
问题是我想控制这600个tr同时隐藏或者同时显示
用prototype中的 $
for (var i = 1; i <= 600; i++) {
$('tr_' + i).style.display = '';
}
这样会有大约5秒的延迟,浏览器没法反应
请问大侠有没有什么方法能缩减这些时间呢
我用document.getElementById()也没什么用

  • 写回答

7条回答

  • laochake 2008-11-14 13:30
    关注

    通过CSS控制,比较:
    [code="java"]

    table.hideTr tr.hide{ display:none; } //插入500行 function insertRows(){ for(var i=0;i<500;i++){ var row = tb1.insertRow(); row.insertCell().innerHTML=i; if(i%2==0){//偶数列用样式控制 row.className="hide"; } } spanRowCount.innerHTML=tb1.rows.length; } //预插入500行 window.onload=function(){ insertRows(); } //通过class控制偶数行 var isShow0=true; function changeClass(){ isShow0=!isShow0; var d = new Date(); tb1.className= isShow0 ? "" : "hideTr" ; span0.innerHTML= new Date() - d; } //通过style控制奇数行 var isShow1=true; function changeStyle(){ isShow1=!isShow1; var d = new Date(); for(var i=0;i<tb1.rows.length;i++){ if(i%2==1){//控制奇数列的显隐 tb1.rows[i].style.display = isShow1 ? "" : "none"; } } span1.innerHTML= new Date() - d; }
    </head>
    <body>
    

    总行数:

    用时:

    用时:

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?