2013-09-22 47 views
0

我有以下链接,应该显示的链接内的图像时加载的javascript:如何使用父锚的href设置图像src?

<a href="http://upload.wikimedia.org/wikipedia/commons/a/ae/Mad_scientist.svg" id="a"> 
<img alt="no image"> 
</a> 

的JavaScript应该获得链接的href属性,并书面说明的HTML时包括它图片。

$('#a').html('<img src="' + $(this).attr('href') + '">image'); 

不知何故,$(this).attr('href')将返回undefined。这有什么问题?

JsFiddle

回答

4

DEMO

$('#a').html(function() { 
    return '<img src="' + $(this).attr('href') + '">image' 
}); 

函数返回的HTML内容进行设置。收到集合中元素的索引 位置和旧的HTML值为 参数。 jQuery在调用函数之前清空元素;使用 oldhtml参数来引用先前的内容。在 函数中,这指的是集合中的当前元素。

Refrence

http://api.jquery.com/html/#html-functionindex--oldhtml

http://learn.jquery.com/javascript-101/this-keyword/

在你的代码

$('#a').html('<img src="' + $(this).attr('href') + '">image'); 

$(this)在你的代码是不明确的。

例如。

$('#a').html(function() { 
     return '<img src="' + $(this).attr('href') + '">image' 
}); 

在上面的代码this指的是当前元素即元素与id="a"

+0

任何人都可以解释它为什么要做这样? –

+0

@QuestionOverflow耶确定更新答案在一分钟内。 –

+0

啊..我看到它在'.html()'函数中说,'this'是指集合中的当前元素。谢谢! –

1
var obj= $("#a"); 
obj.html('<img src="' + obj.attr('href') + '">image'); 
+0

任何人都可以解释为什么它必须这样做? –

+0

,因为这里实例化为什么都没有。 –

相关问题