Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery/js删除动态创建的复选框_Javascript_Jquery - Fatal编程技术网

Javascript jQuery/js删除动态创建的复选框

Javascript jQuery/js删除动态创建的复选框,javascript,jquery,Javascript,Jquery,我使用的是Eric Hynds jQuery MultiSelect小部件,它是从javascript文件填充的。如果选中了主复选框,则会创建一个复选框,并在“主”复选框下附加标签。如果未选中相应的Main,如何将其设置为动态创建的复选框删除的位置?请看我的小提琴来说明我的问题 或 加上这个怎么样 $("input[name^=chkMain]").change(function(){ if($(this).not(':checked')){ $(this).next('

我使用的是Eric Hynds jQuery MultiSelect小部件,它是从javascript文件填充的。如果选中了主复选框,则会创建一个复选框,并在“主”复选框下附加标签。如果未选中相应的Main,如何将其设置为动态创建的复选框删除的位置?请看我的小提琴来说明我的问题

加上这个怎么样

$("input[name^=chkMain]").change(function(){
    if($(this).not(':checked')){
        $(this).next('label').next('.holder').html('');
    }
});

这就是你的意思吗?

添加这个怎么样

$("input[name^=chkMain]").change(function(){
    if($(this).not(':checked')){
        $(this).next('label').next('.holder').html('');
    }
});

这就是你的意思吗?

试试这个

else {
    $("[id^=Main]:checked").each(function(){
        $(this).nextAll('.holder:first').find('#' + lbl).parent().remove();
    })
}

我还添加了一个功能,如果未选中,则取消选中main的子项。删除代码

$(".checkers").click(function() {        
    if(!$(this).is(':checked')) {
        $(this).nextAll('.holder:eq(0)').find('div input').attr("checked", this.checked);
    }
});
如果你不想要这个功能。如果要删除复选框,还可以将
.attr(“选中”,this.checked)
更改为
.parent().remove()

如果您想做相反的事情,也就是选中框,然后选择Main,您可以使用以下方法

var checkedOnes = $('#dropdown1').nextAll('.ui-multiselect-menu').find('ul li input:checked');
for(var i = 0; i < checkedOnes.length; i++) {
    var lbl = checkedOnes.eq(i).attr('value');
    var ctrl = '<input type="checkbox" name="chk" checked="checked" class="chk" id="'+lbl+'">';
    $("[id^=Main]:checked").each(function(){
        $(this).nextAll('.holder:first').append('<div>'+ctrl+lbl+'</div>');    
    });
}
var checkedOnes=$('#dropdown1').nextAll('.ui多选菜单').find('ul li input:checked');
对于(变量i=0;i
试试这个

else {
    $("[id^=Main]:checked").each(function(){
        $(this).nextAll('.holder:first').find('#' + lbl).parent().remove();
    })
}

我还添加了一个功能,如果未选中,则取消选中main的子项。删除代码

$(".checkers").click(function() {        
    if(!$(this).is(':checked')) {
        $(this).nextAll('.holder:eq(0)').find('div input').attr("checked", this.checked);
    }
});
如果你不想要这个功能。如果要删除复选框,还可以将
.attr(“选中”,this.checked)
更改为
.parent().remove()

如果您想做相反的事情,也就是选中框,然后选择Main,您可以使用以下方法

var checkedOnes = $('#dropdown1').nextAll('.ui-multiselect-menu').find('ul li input:checked');
for(var i = 0; i < checkedOnes.length; i++) {
    var lbl = checkedOnes.eq(i).attr('value');
    var ctrl = '<input type="checkbox" name="chk" checked="checked" class="chk" id="'+lbl+'">';
    $("[id^=Main]:checked").each(function(){
        $(this).nextAll('.holder:first').append('<div>'+ctrl+lbl+'</div>');    
    });
}
var checkedOnes=$('#dropdown1').nextAll('.ui多选菜单').find('ul li input:checked');
对于(变量i=0;i

事实上,这是我的下一步。它取消勾选,但是否可以在取消勾选时同时删除复选框和标签?当然,只需将
.attr(“checked”,this.checked)
更改为
.parent().remove()
@user3191137我已更新,以适应其他答案评论中的请求。实际上,这是我的下一步。它取消勾选,但在取消勾选时是否可以同时删除复选框和标签?当然,只需将
.attr(“checked”,this.checked)
更改为
.parent().remove()
@user3191137我已更新,以适应其他答案评论中的要求是的,这很完美。无论如何,要轻松添加相反的内容吗?因此,如果下拉列表中的“1”是check,那么checking Main1也会添加它?当然可以!选中复选框时,可以使用
if(){…}else{…}
执行某些操作,未选中复选框时,可以使用其他操作。这是我很快想到的东西:但它仍然需要一些工作,尽管有一些古怪的事情发生。如果我检查Main4-6,它将添加值1-3+1。希望这两个部分可以分开。@user3191137有关添加的功能,请参见我的答案。我使用
.clone()
函数复制下拉列表中勾选的复选框。我没有增加更多的限制。您可以使这个非常长的选择器更具体,然后操纵克隆以获得您想要的结果-我只删除
ui状态悬停
类,但您可以做更多。。。玩得高兴是的,这太完美了。无论如何,要轻松添加相反的内容吗?因此,如果下拉列表中的“1”是check,那么checking Main1也会添加它?当然可以!选中复选框时,可以使用
if(){…}else{…}
执行某些操作,未选中复选框时,可以使用其他操作。这是我很快想到的东西:但它仍然需要一些工作,尽管有一些古怪的事情发生。如果我检查Main4-6,它将添加值1-3+1。希望这两个部分可以分开。@user3191137有关添加的功能,请参见我的答案。我使用
.clone()
函数复制下拉列表中勾选的复选框。我没有增加更多的限制。您可以使这个非常长的选择器更具体,然后操纵克隆以获得您想要的结果-我只删除
ui状态悬停
类,但您可以做更多。。。玩得高兴不要一个接一个地问同一个项目的10个问题,试着学习你正在使用的语言,这样你就可以自己解决问题,而不是依赖别人的帮助。这是你学习和进步的唯一途径。不要一个接一个地问同一个项目的10个问题,试着学习你正在使用的语言,这样你就可以自己解决问题,而不是依赖别人的帮助。这是你学习和变得更好的唯一途径