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

これに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 に答える
0

私はこれを行い、これは完璧に機能します

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

助けてくれてありがとう

于 2013-01-31T05:42:03.060 に答える
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 に答える