0

由于某些原因,我在网格中动态创建了一个复选框..

我也在同一个网格中动态创建一个按钮。

在这个特定的按钮上单击我需要检查复选框是否被选中。

如果选中复选框,我应该取消选中它。反之亦然。

是否有可能在javascript中实现这一点?

4

2 回答 2

3

是的,有可能。

document.querySelector("button").addEventListener("click",function(){
    [].forEach.call(document.querySelectorAll('input[type="checkbox"]'),function(el){
        el.checked = !el.checked   //Invert
    });​
}, false);

无论复选框是否是动态创建的,这段代码仍然可以工作,因为它甚至不需要任何idor class

对于 IE:

document.getElementsByTagName("button")[0].addEventListener("click", function(){
    var ele = document.getElementsByTagName("input");
    for(var i=0;i<ele.length;i++){
        if(ele[i].type == "checkbox"){
            el.checked = !el.checked   //Invert
        }
    }
});

终极 jQuery 解决方案!

$("button").click(function(){
    $("input[type=checkbox]").each(function(){
        this.checked = !this.checked;
    }
});

现场演示:http: //jsfiddle.net/DerekL/jfeAd/

于 2012-06-07T02:15:08.730 回答
0

您可以在特定上下文中收集复选框(网格中的一些 contianer)并将其选中属性设置为与当前相反的属性,因此:

var grid = <something that returns a reference to the grid>
var cb, cbs = grid.getElementsByTagName('input');

for (var i=0, iLen=cbs.length; i<iLen; i++) {
  cb = cbs[i];
  if (cb.type == 'checkbox') {
    cb.checked = !cb.checked;
  }
}
于 2012-06-07T03:15:49.247 回答