当我选择状态为已批准并单击复选框并单击删除按钮时, 我的身份证明是空的
你能不能让他们知道如何解决这个问题
我的代码:
$(document).on('click', '#deletebtn', function(event) {
var $checked = $('#tablecontent').find(":checkbox:checked");
if (confirm("Are you Sure to Delete") == true) {
var ids = [];
$.each($checked, function(i, e) {
var status = $(e).parent().parent().find('.label-status').text();
var filterstatus = $('#filterstatus').val();
if (!filterstatus) {
ids.push($(e).attr("id"));
} else {
if ($(e).attr("id") != 'selectall' && status == $('#filterstatus').val()) {
ids.push($(e).attr("id"))
}
}
});
alert(ids);
}
});
答案 0 :(得分:3)
问题:当您尝试使用jQuery的Parent方法获取行/记录的状态时,实际上它并没有获得正确的元素,您可以在其中找到状态。< / p>
解决方案:更改以下代码行
var status = $(e).parent().parent().find('.label-status').text();
到
var status = $(e).closest('.AddreqTableCols').find('.label-status').text();
答案 1 :(得分:1)
我想这就是你要做的事,如果不清楚发生了什么,请随意问。
$("#selectall").click(function (e) {
var $this = $(this);
$("#tablecontent [type='checkbox']").prop("checked", $this.is(":checked"));
});
$("#deletebtn").click(function (e) {
if (!confirm("Are you sure you want to delete?")) return;
var $checked = $("#tablecontent [type='checkbox']:checked");
var ids = $.map($checked, function (chk) {
return $(chk).attr("id");
});
console.log(ids);
alert(ids.join(","));
});
http://jsfiddle.net/cdkLkcdk/48/
<强> COMMENT 强>
如果我被分配编写相同的内容,我会在复选框本身上将状态设置为data-status
,以使事情变得更容易。
答案 2 :(得分:0)
问题是status
始终为空。当您选择filterstatus时,它会进入新的if
检查,status == $('#filterstatus').val()
将始终为false,因为status
为空。
将您的代码更改为:
var status = $(e).parent().parent().parent().find('.label-status').text();
您忘记了额外的.parent()
。
注意:您始终可以使用
console.log()
来测试您的变量是否填写正确。