【问题标题】:Delete table rows with AJAX使用 AJAX 删除表格行
【发布时间】: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


【解决方案1】:

这可能是打字问题。尝试将列值转换为整数,如下所示:

if (parseInt(aData[10], 10) === 0) {
    $(nRow).remove();
}

【讨论】:

  • 你不能只做if (!aData[10])吗?我认为== 隐含的类型强制意味着您的代码将比 OP 更具限制性,而不是更少......
  • @DaveRandom:不不,不是如果 (!aData[10])。这是肯定的。我看得很清楚:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2011-06-02
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多