jQuery最接近的TR选择

前端之家收集整理的这篇文章主要介绍了jQuery最接近的TR选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
希望有人可以提供建议.单击链接后尝试删除行时出现问题.

HTML

<table>
  <tr><td>Some Data</td><td><a href="#" class="remove-row>Remove Row</a></td></tr>
  <tr><td>Some Data</td><td><a href="#" class="remove-row">Remove Row</a></td></tr>
</table>

现在是JS

$("a.remove-row").live('click',function(eve){
  eve.preventDefault();
  $.ajax({
   type: 'GET',url: '/someaction/',dataType: 'json',success: function(msg){
    if(msg.error){
     alert(msg.error);
    }else{
     $(this).closest('tr').remove();
     alert(msg.success);
    }    
   }
  })
 });

这应该是非常简单的,但不是删除行.只是为了踢,如果我把它改成类似的东西

$('.remove-row').addClass('foo');

它会将foo添加到所有表行.所以可以理解为什么它不删除最近的行.

有任何想法吗 ?

先谢谢了.

解决方法

问题是这当前是指成功回调中的ajax对象,但这是一个简单的修复,使用如下内容选项:
$("a.remove-row").live('click',function(eve){
  eve.preventDefault();
  $.ajax({
   context: this,//add this here!
   type: 'GET',success: function(msg){
    if(msg.error){
     alert(msg.error);
    }else{
     $(this).closest('tr').remove();
     alert(msg.success);
    }    
   }
  })
 });

上下文选项指示$.ajax()回调函数中的内容,因为您希望它是您单击的.remove-row,将其用作选项.

原文链接:https://www.f2er.com/jquery/177852.html

猜你在找的jQuery相关文章