2010-01-08 74 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')的另一個元素。