誰能幫我明白爲什麼這行不創建一個鏈接的圖像:問題關於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