我有一些超链接,当用户点击其中任何一个时,我想将用户引导到该特定链接。我正在使用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);
});
但我在警报中得到“未定义”。
非常感谢您的所有帮助。
答案 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'));
});
});