这是功能
function deleteItem(id) {
$.post("_asyncpage.php",
{id:id},
function (result) {
if (result == true) {
$('#'+id).remove();
}
}, "json");
}
因此,为了解释,该函数接收一个id,发送到一个在db上执行随机内容并返回true / false的页面。
里面的函数检查结果,如前所述可以是真/假。 如果为true,则继续删除与传递的id匹配的dom元素。
db正确更新但.remove()不起作用......有人知道为什么吗? :(
以下是html结构的示例。 TD内的表是要删除的表。
<td width="120" valign="top" id="13_02">
<table cellspacing="0" cellpadding="0" class="tableProg" id="1">
<tbody>
<tr>
<td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
</tr>
<tr>
<td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
<td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
<td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
</tr>
</tbody>
</table>
</td>
答案 0 :(得分:2)
更新:根据您提供的其他信息,问题可能与您的ID有关。对于以数字开头的ID无效。这可能会导致问题。
如果你传递给函数的 id
在开头已经有#
,那么你不想连接它。
此外,如果您收到的回复是字符串,那么您可能希望将结果与字符串'true'
进行比较。
if (result == 'true') {...
答案 1 :(得分:0)
我会检查你的result
。你将true
作为数字(1)返回吗?或收到时它是一个字符串?
由于您的dataType为json
,因此result
的值必须为json string
或已解析的object
,所以我敢打赌这个1} p>
if (result == true) {
永远不会过去。
答案 2 :(得分:0)
$('#'+id).remove();
是否正在执行?
alert($('#'+id).length)
会怎样?你应该期待一个答案&gt; 0
此外,result
的类型是什么?试试alert(typeof(result));
这有助于您确定if
支票
答案 3 :(得分:0)
只是为了提供更多信息,这是需要通过jquery删除的结构的一部分。
<td width="120" valign="top" id="13_02">
<table cellspacing="0" cellpadding="0" class="tableProg" id="1">
<tbody>
<tr>
<td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
</tr>
<tr>
<td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
<td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
<td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
</tr>
</tbody>
</table>
</td>