谁能帮我明白为什么这行不创建一个链接的图像:问题关于jQuery的.append()
var img = new Image();
$('#id').html('<a href="http://google.com">').append(img).append('</a>');
我设置IMG属性(SRC,ALT ...等) ,我只是把这些线路放在一边,因为它们不相关。不应该将DIV的HTML设置为HREF,然后是图像,然后是关闭A标签?这对我不起作用,我是否以这种错误的方式去做?
谁能帮我明白为什么这行不创建一个链接的图像:问题关于jQuery的.append()
var img = new Image();
$('#id').html('<a href="http://google.com">').append(img).append('</a>');
我设置IMG属性(SRC,ALT ...等) ,我只是把这些线路放在一边,因为它们不相关。不应该将DIV的HTML设置为HREF,然后是图像,然后是关闭A标签?这对我不起作用,我是否以这种错误的方式去做?
这应做到:
$(img).appendTo('#id').wrap('<a href="http://google.com" />');
现场演示:http://jsfiddle.net/simevidas/A4HqE/1/
jQuery的html()
会自动关闭你的HTML元素。在这里看到:http://jsfiddle.net/simevidas/Ut2pQ/
更好的解决方案:
$('<a href="http://google.com" />').append(img).appendTo('#id');
该解决方案是更好,因为这里的DOM操纵只有一次(当锚附加)。在我上面的原始解决方案中,DOM被操作了两次(1. IMG被附加,2. ANCHOR被包裹在图像中)。
追加是一个棘手的标签,有时它不符合你的期望。
在许多情况下,它更容易使用appendTo并实际构建元素。
你必须追加到...它不像一个字符串生成器。 尝试:
$('<a>').attr({'id': 'aId' 'href': '[path for link]'}).appendTo('#divId');
$('<img>').attr('src', '[path to image]').appendto('#aId');
如果您已经使用内置您new Image()
可以使用它的ID作为选择追加到锚...可以追加到div你的形象。
.append
需要整整标签作为输入,而不是开放标签:
$('#id').html('<a href="http://google.com"></a>').append(img);
我只是这样做:
$('#id').append($('<a>').attr('href', 'http://www.google.com').append(img));
当然你要设置的所有属性为你的形象在任何事情都可以正常工
辉煌,wrap方法完美。 – 2011-04-04 18:44:09
@Jon我用更好的解决方案更新了我的答案。 – 2011-04-04 19:03:22