由于某些原因,我在网格中动态创建了一个复选框..
我也在同一个网格中动态创建一个按钮。
在这个特定的按钮上单击我需要检查复选框是否被选中。
如果选中复选框,我应该取消选中它。反之亦然。
是否有可能在javascript中实现这一点?
由于某些原因,我在网格中动态创建了一个复选框..
我也在同一个网格中动态创建一个按钮。
在这个特定的按钮上单击我需要检查复选框是否被选中。
如果选中复选框,我应该取消选中它。反之亦然。
是否有可能在javascript中实现这一点?
是的,有可能。
document.querySelector("button").addEventListener("click",function(){
[].forEach.call(document.querySelectorAll('input[type="checkbox"]'),function(el){
el.checked = !el.checked //Invert
});
}, false);
无论复选框是否是动态创建的,这段代码仍然可以工作,因为它甚至不需要任何id
or 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/
您可以在特定上下文中收集复选框(网格中的一些 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;
}
}