<body> <form id="form1" runat="server"> <div id="div1"> <input value="5000" type="text" id="txt1" /><input type="button" id="btn1" value="生成 checkbox" /> <div id="info"> <input type="button" id="btnTest1" οnclick="fun1(this)" value="第一种" /><span></span><br /> <input type="button" id="btnTest2" οnclick="fun2(this)" value="第二种" /><span></span><br /> <input type="button" id="btnTest3" οnclick="fun3(this)" value="第三种" /><span></span><br /> </div> <div id="box"> </div> </div> <mce:script type="text/javascript"><!-- var g=function(id) {return document.getElementById(id);}; g("btn1").οnclick=function() { var val=g("txt1").value-0; if(!isNaN(val)) { var box=g("box"); box.innerHTML=""; for(var i=0;i<val;i++) { var chk=document.createElement("input"); chk.type="checkbox"; box.appendChild(chk); } } } var chks=g("box").getElementsByTagName("input");//box这个范围内的 //这里为了简单就没有判断type var fun1=function(obj) {//第一种直接在for中取数组长度 var b=!chks[0].checked; var d=new Date(); for(var i=0;i<chks.length;i++) { chks[i].checked=b; } obj.nextSibling.innerHTML=new Date()-d; } var fun2=function(obj) {//第二种 var b=!chks[0].checked; var d=new Date(); for(var i=0;chks[i];i++) { chks[i].checked=b; } obj.nextSibling.innerHTML=new Date()-d; } var fun3=function(obj) {//第三种将数组的长度放到一个局部变量中 //也就是说FOR里面最好都是常量比较好 var b=!chks[0].checked; var length=chks.length; var d=new Date(); for(var i=0;i<length;i++) { chks[i].checked=b; } obj.nextSibling.innerHTML=new Date()-d; } // --></mce:script> </form> </body>