0

例子:

var html_string = '<img src="http://www.example.com/image.jpg" />'
$(html_string).html()

产生:

'' // an empty string

预计我会在html_string.

这是怎么回事?我怎样才能得到我预期的结果?

4

2 回答 2

4

.html() 为您提供元素的内部 html,因为<img>元素为空/空,它们没有内部 html,因此您得到一个空字符串。
你想要的是外部 html

$(html_string)[0].outerHTML
于 2013-06-14T04:30:28.760 回答
2

jQuery.html()返回所选 DOM 元素内的 HTML 代码,但不返回元素的 HTML。这就是你得到一个空字符串的原因,因为你的图像元素中没有 HTML。jQuery 没有为此提供解决方案,但您可以在 DOM 元素处使用 outerHTML(不是 jQuery 元素)。如果你想用 jQuery 来做这个,创建一个元素,把你想要的放在里面,然后使用.html(). 看:

var string = '<img src="a.jpg"/>';
var $el = $(string);

var $wrapper = $('<p>').append($el).html();

希望我有所帮助。

于 2013-06-14T04:30:36.547 回答