js 全选和反选、撤销?

JavaScript08

js 全选和反选、撤销?,第1张

假如页面上有n个checkbox控件,名字设置为sel

<INPUT id=chkbx type=checkbox>选项A

<INPUT id=chkbx type=checkbox>选项B

<INPUT id=chkbx type=checkbox>选项C

js如下代码即可实现:

for(var o in chkbx)o.checked=false//全不选

for(var o in chkbx)o.checked=true//全选

for(var o in chkbx)o.checked=!o.checked//反选

首先选择器写法就不对

document.getElementsByName['game'],至少这么写

其次

由于你所有input标签所有的name属性都不一样,不能批量选择,除非像楼上贴代码那哥们一样,把所有的复选框的name属性都改为game也可以。如果纯粹是为了达到目的话用document.getElementsByTagName("input"),能达到效果

另外,楼上也提到了,判断的等号==

还有提醒楼主一下,不要反复的使用选择器,少量代码无所谓,大量代码的情况下会降低运算效率的。

在楼主的代码基础上改了一下

//全选

function test()

{

  obj = document.getElementsByTagName("input")

for(var i=0i<obj.length-3i++)

{

var f=obj[i]

if(f.checked==false)

{

f.checked=true

}

}

}

//反选

function ftest()

{

obj = document.getElementsByTagName("input")

for( var i=0i<obj.length-3i++)

{

f=obj[i]

if(f.checked==false)

{

f.checked=true

}

else

{

f.checked=false

}

}

}

//全部取消

function CancelAll()

{

obj = document.getElementsByTagName("input")

for( var i=0i<obj.length-3i++)

{

f=obj[i]

if(f.checked==true)

{

f.checked=false

}

}

}

有几个地方可能有问题:

部分浏览器不支持form1.这种方法访问控件,使用document.方法。

if(elements[i].type=='checkbox') {

  if(elements[i].checked==false){

         elements[i].checked=true}}

这样写会比较好点:

if (elements[i].type == 'checkbox') elements[i].checked = !elements[i].checked