将遍历操作放到setTimeout中试试。

解决方案 »

  1.   

    用你的权限值(如果保存全部不同的话)做checkbox的ID,再用document.getElementById()来找, 这样应该会快点
      

  2.   

    权限还要保存,难道要一个一个的insert么,那样太慢了,请问像这样的问题数据库应该怎么建啊!
    另外,我从数据库查询到的权限list发到页面后将其转放在隐藏域,然后通过js取的.getElementsByName(hidden)放到数组中,然后和getElementsByName(Checkbox)的值进行比较,如果是超级权限的话,要228个隐藏域和228个checkbox比较要用228*228次!!!!!
    太慢了!!有什么改进的方法么?
      

  3.   

    hansonboy() ( ) 信誉:95    Blog  2006-11-30 09:28:46  得分: 0  
     
     
       用你的权限值(如果保存全部不同的话)做checkbox的ID,再用document.getElementById()来找, 这样应该会快点应该这么做,或者要打勾checkbox的value设置为统一值,然后value为这个值的checkbox  checked
     
      

  4.   

    <html>
    <head>
    <title>3</title>
    <base target="_self">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script defer="defer">
    function test(){

    arr = document.getElementById('ids').value.split(',');
    for(var i=0; i < arr.length; i++){
    document.getElementById('box' + arr[i]).checked = true;
    }
    }
    function create(){
    var oForm = document.getElementById('form1');
    var oBox = null;
    for(var i = 1; i <=228;i++){
    oBox = document.createElement('input');
    oBox.type = 'checkbox';
    oBox.id = 'box' + i;
    oBox.value = i;
    oForm.appendChild(oBox);
    }

    }
    create();</script>
    <body>
    <input type="text" id="ids" value="1,2,3,4,5,6,7,8,9,10,11,12,13,228,123">
    <input type="button" value="test" onclick="test()">
    <form id="form1"></form>
    </body>
    </html>
      

  5.   

    楼上的方法的确是不错,也第一次从csdn受益了.可是因为checkbox有父节点选择,字节点全选的操作,id已经被占用了.只有value是空闲的.
    顺便问一下,怎么向数据库 更新权限啊!难道要先删除原来的权限,然后在插入么?(这样不合规范啊!)