我每行都有一个复选框。我有一个按钮,删除选中复选框的所有行。为此,我必须获取选中复选框的行的ID。我已编写以下代码。但不行。请帮帮我..
按钮代码:<a class="row-delete" align="left" onclick="deleteItem()"/>
function deleteItem(){
if (confirm("Are you sure you want to delete?")){
$(":checkbox").change(function() {
var notChecked = [], checked = [];
$(":checkbox").map(function() {
this.checked ? checked.push(this.id) : notChecked.push(this.id);
});
alert("checked: " + checked);
});
deleteAll(checked,0);
}
}
上面的代码有什么问题?
答案 0 :(得分:1)
您正在change
方法中注册deleteItem
事件处理程序,这是不需要的,您需要使用.each()迭代复选框并更新所需的数组
此外,您最好使用.each()
代替.map()
,因为您没有返回任何值
function deleteItem(){
if (confirm("Are you sure you want to delete?")){
var notChecked = [], checked = [];
$(":checkbox").each(function() {
if(this.checked){
checked.push(this.id);
} else {
notChecked.push(this.id);
}
});
alert("checked: " + checked);
deleteAll(checked,0);
}
}
答案 1 :(得分:1)
从onchange function
移除deleteItem
,因为click
link
re-init
更改checkbox elements
时会function deleteItem(){
if (confirm("Are you sure you want to delete?")){
var notChecked = [], checked = [];
$(":checkbox").each(function() {
id=this.id;
this.checked ? checked.push(id) : notChecked.push(id);
});
alert("checked: " + checked);
deleteAll(checked,0);
}
}
array of checked checkboxes
您可以创建 $(":checkbox:checked").each(function() {
checked.push(this.id);
});
之类的
$(":checkbox").on('click',function() {
if($(this).is(':checked')){
alert($(this).attr('id'));// this item is ready to delete
}
});
如果您想要删除项目,请单击复选框,然后尝试,
{{1}}