2013-03-27 33 views
12

Tôi cảm thấy như thế này sẽ hoạt động, nhưng không. Không chắc mình đang làm gì sai.Thêm biến vào cuối href URL onClick JQUERY

function addURL() 
{ 
$(this).attr('href', function() { 
return this.href + '&cylnders=12'; 
} 


<a onclick="addURL();" href="/search-results/?var1=red&var2=leather">Click this</a> 

Trả lời

25

Trước tiên, bạn đang thiếu một loạt các dấu ngoặc:

function addURL() 
{ 
    $(this).attr('href', function() { 
     return this.href + '&cylnders=12'; 
    }); 
} 

Thứ hai, trong mã của bạn "này" dùng để chỉ cửa sổ, không phải nguyên tố này. Hãy thử điều này thay vì:

<a onclick="addURL(this)" href="/search-results/?var1=red&var2=leather">Click this</a> 

function addURL(element) 
{ 
    $(element).attr('href', function() { 
     return this.href + '&cylnders=12'; 
    }); 
} 
+0

Ah, bắt tốt, cảm ơn bạn. Unfortuantely mà không hoàn toàn sửa chữa nó, mặc dù lỗi syxtax chắc chắn. –

+0

Bản trình diễn trực tiếp: http://jsfiddle.net/fSAzA/ – Christophe

+0

Hoàn toàn hoạt động. THANKS A TON để được giúp đỡ. –

1
 function addURL() 
     { 
    var data=window.location+"&cylnders=12"; 
    alert(data); 
    } 

thử khái niệm này. hy vọng nó sẽ cung cấp cho bạn một số giải pháp.

Hãy thử điều này quá

  function addURL() 
      { 
       window.location.href='/search-results/?var1=red&var2=leather&cylnders=12' 
      } 
+0

Khi tôi thêm điều này, tôi nhấp vào liên kết và nó trả về URL hiện tại của tôi với biến được nối thêm. Tôi đoán những gì tôi đang cố gắng làm là lấy URL trong href, thêm varibale vào cuối, và sau đó đi đến URL đó. –

1

Tại sao bạn không thêm một ID hay Class để liên kết href bạn để xác định nó thông qua jquery? Dường như liên kết của bạn được kích hoạt trước khi bạn có thể thêm bất kỳ dữ liệu nào vào thuộc tính href.

<a class="datalink" href="/search-results/?var1=red&var2=leather">Click this</a> 
<script> 

$('.datalink').attr('href', function() { 
return this.href + '&cylnders=12'; 

}); 

</script> 
+0

Xin chào, vì không có hàm javascript được xác định cho thẻ neo trong ví dụ của bạn, câu lệnh 'return' sẽ không hoạt động. Thay vào đó, nó phải là "this.href = this.href + '& cylnders = 12" – Hemant

+0

Dường như hoạt động tốt như cũ. – chris