2010-01-08 71 views
1

我想属性href添加到URL的末尾:jQuery的添加ATTR结束串

这应该是很容易的。这就是我所拥有的,但我认为是错的。

$('.delete-code').click(function() { 
    var row = $(this).parent().parent(); 
    $.ajax({ 
     type: "POST", 
     url: "http://website.com/admin/home/deleteCode/"+$(this).attr('href'), 
     data: $(this).attr('href'), 
     success: function() { 
      $(row).hide(); 
     } 
    }); 
    return false; 
}); 

这工作时,在href

+0

你能发布完整的代码吗? – rahul 2010-01-08 06:35:58

+0

你会得到什么输出以及你期望输出什么? – cobbal 2010-01-08 06:36:01

+0

已更新。这是一个简单的Ajax调用。 – 2010-01-08 06:59:01

回答

2

你的代码,我硬代码应工作。问题是网址。某些浏览器需要200 OK才能调用成功回调。

尝试改变:

url: "http://website.com/admin/home/deleteCode/"+$(this).attr('href'), 

到:

url: "http://www.flickr.com/search/?q="+$(this).attr('href'), 

它应该工作。你

可能还需要改变一些小东西:

  1. data属性是多余的,不漂亮的URL开箱工作。
  2. jQuery有一个$ .get方法来发出GET请求。
  3. 最接近('tr')而不是父()。parent()将使您的代码更具可读性。
  4. href是元素属性,所以它可以直接访问DOM低谷

因此,也许这可以根据你所需要的是更好的选择:

$('.delete-code').click(function() { 
    var tr= $(this).closest('tr') 
    $.get("http://www.flickr.com/search/?q=" + this.href, 
     function(){ 
      tr.hide() 
     }) 
    return false 
}) 

好运。

+0

这不是一个修复,但这是最好的答案,所以我给你奖励! – 2010-01-08 15:53:11

0

你的代码没有问题,它可能只是你的DOM遍历或你做AJAX的方式。

和Julio Protzek是正确的,除非您使用的是误差函数或想使一个同步的XMLHttpRequest(相当罕见的情况下),你可以很容易地说

$('.delete-code').click(function() { 
    var row = $(this).parent().parent(); 
    $.get(
     "http://website.com/admin/home/deleteCode/"+$(this).attr('href'), 
     {}, // or { data: $(this).attr('href') }, if you needed to send that 
     success: function() { 
      $(row).hide(); 
     } 
    }); 
    return false; 
}); 

记得,不在此限。删除代码适用于<a class="delete-code">元素,这是您试图从中获取.attr('href')的另一个元素。