我在动态表格中遇到问题,完美地添加了新的线条,但没有删除线条。
这是我的代码:
<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);
答案 0 :(得分:1)
如果没有看到实际的DOM,有点难以辨别,但实际上并没有删除它:
aLigneToTrash
我想你可能想这样做:
var data = 'maincourante=' + aLigneToTrash.html();
$('table td.textemc').html()
将始终选择DOM中的第一个td.textemc
(这就是jQuery的工作原理)。
答案 1 :(得分: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
答案 2 :(得分:0)
我会这样做,这完美地工作
var data = 'maincourante=' + aLigneToTrash.children('.textemc').html();
再次感谢您的帮助
答案 3 :(得分: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是基表)