我想用jquery删除表的行。当我写这个jQuery(this).parent()。parent()。fadeOut();在ajax成功函数之外的声明它淡出了行。但是如果在ajax成功函数中编写它就不起作用。
jQuery(document).ready(function() {
jQuery('.assignme').click(function(){
id = jQuery(this).attr('rel');
jQuery.ajax({
url:'home.php?ajax=1&action=assing_to_agent&application_id='+id,
success:function(data){
if(data==-1)
alert('Assigned to someone else');
jQuery(this).parent().parent().fadeOut();
}
});
return false;
});
});
这是html
<tr>
<td><button class="assignme" rel="<?php echo $row_rs_report['application_id']; ?>">Assign Me</button></td></tr>
另外,如果有人可以告诉我一个很好的做法,即在使用rel属性发送id时向ajax方法发送值?
答案 0 :(得分:2)
当您的成功被调用时,此语句就是窗口(据我记得)。至少,它可能不是你试图引用的元素。
[编辑]实际上,你可以使用 id 属性代替 rel ,因此,你可以指向那个按钮(只要id是唯一的)并删除其td父级。
HTML可能会成为:
<tr>
<td>
<button class="assignme" id="<?php echo $row_rs_report['application_id']; ?>">
Assign Me
</button>
</td>
</tr>
和js:
jQuery(document).ready(function() {
jQuery('.assignme').click(function(){
var id = jQuery(this).attr('id');
jQuery.ajax({
url:'home.php?ajax=1&action=assing_to_agent&application_id='+id,
success:function(data){
if(data==-1)
alert('Assigned to someone else');
jQuery("#"+id).parent("td").fadeOut();
}
});
return false;
});
});
声明一个var将参数传递给ajax是我用来做的方式,也许有一个更好的。
顺便说一句, var 语句可以保证本地使用var(更安全,更快)
最高