2010-09-05 2 views
3

Say У меня есть изображение, как это:Как отобразить 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 также доступно в форме плагина, here и here, при необходимости, если вам это нужно, вам придется самому сделать или получить плагин синтаксиса.

+0

Почему вы обертыванием

+0

@Stefan - '.html()' получает * innerHTML *, из которых его нет :) –

+0

А, вам нужен родитель, чтобы содержимое html было из самого элемента. Это похоже на обходное решение, которое должно существовать в форме плагина. –

0

форма Plugin:

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

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

Да, это ничего мне не дает, потому что функция 'html' возвращает внутренний html, что, конечно же, не для« img ». – Svish

+0

Обновлен до фразы Ответ Ника в форме плагина, поэтому он можно использовать повторно. –

+0

@Stefan - Форма плагина существует много мест, нет необходимости ее реплицировать, а '$ (this)' избыточно, если вы должны это сделать :) –

Смежные вопросы