删除ajax调用成功函数中的一行

时间:2011-06-23 14:00:26

标签: jquery

我想用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方法发送值?

1 个答案:

答案 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(更安全,更快)

最高