2011-06-16 67 views
1

我有一些超鏈接,當用戶點擊他們中的任何一個我想引導用戶到那個特定的鏈接。我正在使用jQuery訪問href屬性。以下是代碼。jquery單擊事件引用與[this]

<a href="http://www.google.com" class="class-name">link1</a>    
<a href="http://www.facebook.com" class="class-name">link1</a>   
<a href="http://www.yahoo.com" class="class-name">link1</a> 

現在我要訪問使用jQuery的URL我使用下面的代碼:

$(document).ready(function() { 
$('.class-name').click(function(){ 
    var linkHref=$("this.class-name").attr('href'); 
    alert(linkHref); 
    $('.redirect').attr('href',linkHref);  
}); 

但我在警報得到「未定義」。

我們非常感謝您的幫助。

+0

沒有元素'this'帶班'redirectLink':

$(document).ready(function() { $('.class-name').click(function(){ var linkHref=$(this).attr('href'); alert(linkHref); $('.redirect').attr('href',linkHref); }); }); 

您可以縮短這。實際上,沒有元素具有class'redirectLink'。 – 2011-06-16 14:32:37

+0

請參閱編輯後的版本。對困惑感到抱歉。我從錯誤的loc中複製。 – Jay 2011-06-16 14:34:27

回答

2
var linkHref=$(this).attr('href'); 
+0

試圖告訴「未定義」。 – Jay 2011-06-16 14:30:05

+0

@Jay:不,它不是:http://jsfiddle.net/fkling/ZmSzY/ – 2011-06-16 14:36:43

+0

那麼你可能在某個地方有錯別字,有時會發生愚蠢的事情,比如西里爾文a,e,o用拉丁語a,e,o,或者你的腳本被緩存,並且你做了改變,但瀏覽器使用舊的 – venimus 2011-06-16 14:40:38

0

您的選擇錯誤。

this是一個特殊的標識符,用於獲取調用函數的上下文。編寫"this"是沒有意義的; jQuery函數無法知道你的this是什麼。您可能需要$(this)

你也可以寫$(this).find('.redirectLink'),但那不是你正在尋找的代碼。

3

更改您這樣的代碼

$(document).ready(function() { 
     $('.class-name').click(function(){ 
     var linkHref=$(this).attr('href'); 
     alert(linkHref);  
}); 

這是對象<一個>您用點擊方法選擇。因此,您不需要讓jQuery像之前一樣根據類或標識搜索對象。希望澄清。

0

在jQuery中,這是指範圍內的當前對象。在點擊事件的情況下,這指的是被點擊的超鏈接。但不要用引號括起來。在你的代碼

$(document).ready(function() { 
    $('.class-name').click(function(){ 
    $('.redirect').attr('href',$(this).attr('href'));  
    }); 
}); 
+0

試圖告訴「未定義」。 – Jay 2011-06-16 14:29:25

+0

這裏工作:http://jsfiddle.net/UNdb8/ – BonyT 2011-06-16 14:39:26