Javascript来检查是否在动态创建的按钮上选中了动态创建的复选框

Javascript来检查是否在动态创建的按钮上选中了动态创建的复选框,javascript,Javascript,由于某些原因,我正在网格中动态创建一个复选框 我还在同一个网格中动态创建一个按钮 在这个特殊的按钮上,单击我需要检查复选框是否被选中 如果勾选了复选框,我应该取消勾选。反之亦然 是否可以在javascript中实现这一点?是的,这是可能的 document.querySelector("button").addEventListener("click",function(){ [].forEach.call(document.querySelectorAll('input[type="c

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

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

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

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

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

是的,这是可能的

document.querySelector("button").addEventListener("click",function(){
    [].forEach.call(document.querySelectorAll('input[type="checkbox"]'),function(el){
        el.checked = !el.checked   //Invert
    });​
}, false);
无论是否动态创建复选框,此代码仍将工作,因为它甚至不需要任何
id
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
        }
    }
});
现场演示:

是的,这是可能的

document.querySelector("button").addEventListener("click",function(){
    [].forEach.call(document.querySelectorAll('input[type="checkbox"]'),function(el){
        el.checked = !el.checked   //Invert
    });​
}, false);
无论是否动态创建复选框,此代码仍将工作,因为它甚至不需要任何
id
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
        }
    }
});

实时演示:

您可以收集特定上下文中的复选框(网格中的某些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;
  }
}
var网格=
var cb,cbs=grid.getElementsByTagName('input');

对于(var i=0,iLen=cbs.length;i您可以在特定上下文(网格中的某些contianer)中收集复选框,并将其checked属性设置为与当前相反的属性,因此:

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;
  }
}
var网格=
var cb,cbs=grid.getElementsByTagName('input');

对于(var i=0,iLen=cbs.length;iYes,这是可能的。这就是你的全部问题吗?是的……。换句话说,你实际上没有问一个需要更多是/否回答的问题。如果你有一个关于如何做的具体问题,那么如果你向我们展示你到目前为止所做的,并解释exac,我们将非常乐意提供帮助你认为哪里出了问题。是的,这是可能的。这就是你的全部问题吗?是的……。换句话说,你实际上没有提出一个需要更多是/否回答的问题。如果你有一个关于如何做到这一点的具体问题,那么如果你向我们展示你到目前为止所做的,并且解释请注意,处于怪癖模式的IE 8和IE 7及更低版本不支持
querySelector
。此外,任何标准都不要求导航方法支持宿主对象作为其
对象。因此,在DOM对象上调用此类方法(如此处使用的节点列表)可能会(并且确实)在符合要求的浏览器中抛出错误。请在IE 8及更低版本中尝试。此外,此功能仅取消选中已选中的浏览器,不会在每次操作中检查未选中的浏览器。继续尝试,IE 8及更低版本不支持addEventListener。以及什么功能测试你打算用它来选择要运行的代码版本吗?@RobG-我讨厌IE!jQuery是我最后的武器。对于那些已经为web编程一段时间的人来说,IE 8(甚至7和6)与IE 4和NN4的时代相比简直是小菜一碟。:-)请注意,处于怪癖模式的IE 8和IE 7及更低版本不支持
querySelector
。此外,任何标准都不要求navtive方法支持宿主对象作为其
对象。因此,在DOM对象(如此处使用的节点列表)上调用此类方法是可以预期的(并且可以)在符合要求的浏览器中抛出错误。在IE 8和更低版本中尝试。此外,此功能仅取消选中选中的浏览器,不会在每次操作中检查未选中的浏览器。继续尝试,IE 8和更低版本不支持addEventListener。以及什么功能测试你打算用它来选择要运行的代码版本吗?@RobG-我讨厌IE!jQuery是我最后的武器。对于那些已经为web编程一段时间的人来说,IE 8(甚至7和6)与IE 4和NN4的时代相比简直是小菜一碟。:-)