使用[this] jquery单击事件引用

时间:2011-06-16 14:21:11

标签: javascript jquery

我有一些超链接,当用户点击其中任何一个时,我想将用户引导到该特定链接。我正在使用jquery访问href属性。以下是代码。

<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);       
});

但我在警报中得到“未定义”。

非常感谢您的所有帮助。

4 个答案:

答案 0 :(得分:3)

像这样更改你的代码

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

这是对象&lt; a&gt;您使用click方法选择的。因此,您不需要像以前那样让jQuery基于类或id搜索对象。希望这澄清。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

你的选择器错了。

this是一个特殊的标识符,用于获取调用函数的上下文。编写"this"没有意义。 jQuery函数无法知道您的this是什么。

你可能想要$(this)

你也可以写$(this).find('.redirectLink'),但这不是你要找的代码。

答案 3 :(得分:0)

在jQuery中,这指的是范围内的当前对象。在单击事件的情况下,这指的是被单击的超链接。但请勿将其括在引号中。

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

你可以将其缩短为:

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