我想要一个用图像替换每个li的函数。这是我的代码:
$(document).ready(function(){
var tmphref;
var tmpname;
var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';
$('#somediv li a').each(function(){
tmphref = $(this).attr("href");
tmpname = /http\:\/\/(\w+)\.somesite\.com\//.exec(tmphref);
$(this).parent().replaceWith(str);
});
});
图片位于此特定路径中:www.somesite.com/a/username/avatar-small.jpg
上面的代码不起作用。有什么想法吗?
提前谢谢。
答案 0 :(得分:4)
移动
var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';
在tmphref
和tmpname
之后,就像这样
$('#somediv li a').each(function(){
tmphref = $(this).attr("href");
tmpname = /http\:\/\/(\w+)\.somesite\.com\//.exec(tmphref);
var str = '<a href="' + tmphref + '"><img src="http://www.somesite.com/a/' + tmpname[1] + '/avatar-small.jpg /></a>';
$(this).parent().replaceWith(str);
});
因为已为变量str
分配了undefined
tmphref
和tmpname
的值,因此更改了tmphref
和tmpname
之后的值那不会影响变量str
并且,对于这种情况,您不需要在tmphref
函数之外为tmpname
和.each
声明变量。