我有以下链接,它应该在加载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
。这有什么问题?
答案 0 :(得分:4)
$('#a').html(function () {
return '<img src="' + $(this).attr('href') + '">image'
});
返回要设置的HTML内容的函数。收到索引 集合中元素的位置和旧的HTML值为 参数。 jQuery在调用函数之前清空元素;使用 oldhtml参数引用以前的内容。内 function,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"
答案 1 :(得分:1)
var obj= $("#a");
obj.html('<img src="' + obj.attr('href') + '">image');