我有以下html结构...
<tr class="table_opening_CL">
<td>
<button class="extract_bt">Approve</button>
<button class="extract_bt">Delete</button><br>
<input name="featured" class="featured_selector" type="checkbox" />
Featured<input name="public_selector" class="public_selector" type="checkbox" />
Public
</td>
<td>25</td>
<td>Session</td>
<td>Beek</td>
<td>dPC7t</td>
<td>2012-01-27 23:38:19</td>
<td>Abstract</td>
</tr>
现在,我将点击事件绑定到button
,其中包含extract_bt
...
在click事件上我将一些数据发布到服务器如果response为true,那么我需要删除带有TR
类及其内部HTML的元素table_opening_CL
。
我在$(this).html();
内警告.post
的值,但它返回NULL
。
我们是否需要在发布之前存储this
?
请帮帮我
谢谢。
更新:
这是我用过的代码......
$(".extract_bt").live('click',function(){
var p_key = $(this).parent().next().next().next().next().text();
var p_id = $(this).parent().next().text();
var fchkd = $(this).parent().find(".featured_selector").prop("checked");
var pchkd = $(this).parent().find(".public_selector").prop("checked");
$.post("url",{PACKAGE_KEY:p_id,FEATURED:fchkd,PUBLIC:pchkd,PACKAGE:p_key},function(data){
if (data)
{
alert($(this).html());
$(this).parents(".table_opening_CL").remove();
}
else
{
alert(data);
}
},"json");
});
});
答案 0 :(得分:4)
是的,post
成功处理程序this
内部不会指向DOM元素,因此$(this).html()
将无效。
我认为你正在寻找类似的东西。
$('.extract_bt').click(function(){
var $btn = $(this);
$.post("urlOfThePage", {}, function(response){
//If reponse will be boolean you can just say if(response)
if(response == true){
//This will remove the whole tr element including child elements.
$btn.closest('tr.table_opening_CL').remove();
}
}
});