【发布时间】:2012-05-26 22:33:27
【问题描述】:
我正在使用 AJAX 从 jQuery Datatable 中删除特定行。这些行在第 10 列中的值为 0(如果我们从 0 开始计数)。下面你可以看到我的代码。出于某种原因,它不会删除任何行。我检查了 aData[10] 的值 => 在某些行中它绝对等于 0。
$(document).ready(function(){
$('#newspaper-b').dataTable({
"sPaginationType":"full_numbers",
"aaSorting":[[4, "asc"]],
"aoColumns": [null,null,null,null,null,null,null,null,null,null,
{"bSearchable": true, "bVisible": false},null,null],
"bJQueryUI":true,
'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if(aData[10]=="0"){
$(nRow).remove();
}
return nRow;
}
});
更新
当我这样做时:
'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
var r=confirm(aData[10]);
if (parseInt(aData[10], 10) === 0) {
$(nRow).remove();
}
return nRow;
}
...然后我可以看到其中一行有 0。 但是当我这样做时:
'fnRowCallback': function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (parseInt(aData[10], 10) === 0) {
var r=confirm(aData[10]);
$(nRow).remove();
}
return nRow;
}
...然后alert JS消息(即var r=confirm(aData[10]))没有出现,这意味着IF语句返回false。但是为什么???
![在此处输入图片描述][1]
【问题讨论】:
-
猜测,这些行中的值是 0,带有前导/尾随空格 - 试试
if (aData[10].replace(/(^\s+|\s+$)/g, '') === "0") { //... -
在 MySQL DB 中,该列的值为 smallint(6)。我检查了你的假设。没有结果。那是个谜。我已经不知道了。
-
您能否说明如果将第一次编辑示例中的
confirm()更改为confirm(aData[10] + (typeof aData[10]));会发生什么 -
@DaveRandom:输出:1,字符串。不幸的是,由于我是新用户,我无法发布警报框图像,但我想这个信息 (1,string) 就足够了。
-
上面写着
1?我虽然说0?
标签: php javascript jquery ajax datatables