取消选中时从javascript数组中删除项
已通过选中复选框获取此函数以扩展数组(组):取消选中时从javascript数组中删除项,javascript,jquery,Javascript,Jquery,已通过选中复选框获取此函数以扩展数组(组): $("input[type=checkbox]").click(function() { if($(this).is(":checked")){ $(this).parent().data("groups").push("my"); console.log($(this).parent().data("groups")); } else{ // $(this).p
$("input[type=checkbox]").click(function() {
if($(this).is(":checked")){
$(this).parent().data("groups").push("my");
console.log($(this).parent().data("groups"));
}
else{
// $(this).parent().data("groups").pop();
console.log($(this).parent().data("groups"));
}
});
<div class="item white" data-kpi="GDI" data-groups='["all", "numbers", "green", "square"]'>
<input type="checkbox" class="ps" name="add" value="my" />
</div>
$(“输入[type=checkbox]”)。单击(函数(){
如果($(this).is(“:checked”)){
$(this.parent().data(“groups”).push(“my”);
console.log($(this.parent().data(“groups”);
}
否则{
//$(this.parent().data(“groups”).pop();
console.log($(this.parent().data(“groups”);
}
});
我希望能够通过取消选中复选框(可能有多个“我的”组项目)再次删除该项目 可以使用splice从阵列中删除元素
array = ['my', 'name', 'my'];
index = array.indexOf('my');
array.splice(index, 1);
如果向数组中添加唯一标识复选框的内容,则可以执行此操作。或者,如果您不关心删除了哪个项目,只需使用代码中已有的
$(this).parent().data(“groups”).pop()
。或者这有什么问题?如果你做了.data(this.id)
或者其他任何独特的事情,你实际上可以删除它,因为如何从我的数组中删除某个我的?以及实际删除它的部分?我不理解这个问题。这实际上删除了元素