0

我在动态表中遇到问题,可以完美地添加新行但不能删除行。

这是我的代码:

<script type="text/javascript">
  $(document).ready(function(){
   $(document).on("click", ".trash", function(e){
    e.preventDefault();
    var $ligneParent = $(this).parent().parent();
    trash($ligneParent);
   });
  });

function trash(aLigneToTrash) {
 if (confirm("Vous allez supprimer définitivement cette ligne !")) {
 var maincourante =  $('table td.textemc').html();
 var data = 'maincourante=' + maincourante;

console.log(maincourante);

$.ajax({
  type: "POST",
  url: "form/delete/deletemc.php",
  data: data,
  cache: false,
  success: function() {
    aLigneToTrash.fadeOut('slow', function() {
      aLigneToTrash.remove();
    });
  }
});
return false;      
}
}
</script>

我的问题是变量“maincourante”一直返回第一个条目。这个变量应该返回我要删除的行的值。

这是我的新行代码:

var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td class="textemc">'+texte+'</td><td class="button"><button><i class="icon-pencil"></i></button></td><td class="button"><button class="trash"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
          $('#tablemc').append(nouvelle_ligne);
4

4 回答 4

1

如果没有看到实际的 DOM,这有点难以分辨,但你实际上并没有删除它:

aLigneToTrash

我想你可能想做:

var data = 'maincourante=' + aLigneToTrash.html();

$('table td.textemc').html()将始终选择td.textemcDOM 中的第一个(这正是 jQuery 的工作方式)。

于 2013-01-31T05:21:29.273 回答
0

谢谢你的帮助。我试试这个:

function trash(aLigneToTrash) {
 if (confirm("Vous allez supprimer définitivement cette ligne !")) {
  var data = 'maincourante=' + aLigneToTrash.html();

console.log(data);

$.ajax({
  type: "POST",
  url: "form/delete/deletemc.php",
  data: data,
  cache: false,
  success: function() {
    aLigneToTrash.fadeOut('slow', function() {
      aLigneToTrash.remove();
    });
  }
});
return false;      
}
}

和 console.log 返回给我:

maincourante=<td class="thtime">09h28</td><td class="textemc">ryhjzreyjryjryjr54654</td><td class="button"><button><i class="icon-pencil"></i></button></td><td class="button"><button class="trash"><i class="icon-trash"></i></button></td>

我想要这样的“td class =“textemc”的值maincourante=ryhjzreyjryjryjr54654

于 2013-01-31T05:34:00.050 回答
0

我会做到这一点,而且这项工作完美无缺

var data = 'maincourante=' + aLigneToTrash.children('.textemc').html();

再次感谢您的帮助

于 2013-01-31T05:42:03.060 回答
0

尝试将您的 ajax 调用更新为此:

....
$.ajax({
  type: "POST",
  url: "form/delete/deletemc.php",
  data: data,
  cache: false,
  success: function() {
     aLigneToTrash.fadeOut('slow', function() {
     aLigneToTrash.remove();
  $('#tablemc').append(' ');/*add a space to let browser know that there is a change*/
});
  }
});
return false;      
}
}
</script>

我有类似的问题,所以浏览器(尤其是 IE)似乎没有检测到表格上的很多变化;这个黑客对我有用。我希望它对你有用。(假设#tablemc 是基表)

于 2013-01-31T07:19:26.080 回答