0

我有以下链接,它应该在加载 javascript 时在链接中显示图像:

<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。这有什么问题?

提琴手

4

2 回答 2

4

演示

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

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

参考

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"

于 2013-09-22T08:07:08.887 回答
1
var obj= $("#a");
obj.html('<img src="' + obj.attr('href') + '">image');
于 2013-09-22T08:07:38.067 回答