2010-09-05 57 views
3

說的HTML我有一個這樣的形象:如何顯示圖像

<img src="someimage.png" alt="Image" /> 

我想顯示例如代碼標記,圖像的HTML,但我怎樣才能得到它呢?我可以很容易地將圖像:

$('img'); 

但我怎麼能得到它的HTML並將其追加到代碼標籤?

回答

5

說你有一個這樣的元素:

<code id="mycode"></code> 

你可以這樣說:

$("#mycode").append($("<div />").append($('img').clone()).html()); 

或者,如果你想要半編碼進行顯示,這樣的:

var html = $("<div />").append($('img').clone()).html(); 
$("#mycode").append(html.replace('<','&lt;').replace('>','&gt'));​​​​​​​​​​​​​​​​​​​​​ 

You can give that a try here。獲取html部分本身也有插件形式,herehere,編碼,如果你需要它,你必須自己做,或者得到一個語法插件。

+0

爲什麼你包裹在 2010-09-05 17:02:02

+0

@Stefan - '.html()'得到了* innerHTML *,其中沒有:) – 2010-09-05 17:03:27

+0

啊,你需要一個父母來使html元素成爲元素本身。這看起來像是一種應該以插件形式存在的黑客解決方法。 – 2010-09-05 17:06:37

0

插件形式:

jQuery.fn.outerHtml = function() { 
    return $('<div>').append(this.clone()).html(); 
}; 

$('#mycode').append($('img').outerHtml()); 
+0

是的,這不會給我什麼,因爲'html'函數返回內部html,這對於'img'來說當然不是什麼。 – Svish 2010-09-05 17:03:26

+0

更新爲短語Nick的插件形式的答案,所以它可以重複使用。 – 2010-09-05 17:11:22

+0

@Stefan - 插件的形式存在很多地方,不需要複製它,'$(this)'是多餘的,如果你必須這樣做的話:) – 2010-09-05 17:15:10