例:
var html_string = '<img src="http://www.example.com/image.jpg" />'
$(html_string).html()
生成:
'' // an empty string
で元の HTML 文字列が返されることを期待していましたhtml_string
。
どうしたの?期待した結果を得るにはどうすればよいですか?
例:
var html_string = '<img src="http://www.example.com/image.jpg" />'
$(html_string).html()
生成:
'' // an empty string
で元の HTML 文字列が返されることを期待していましたhtml_string
。
どうしたの?期待した結果を得るにはどうすればよいですか?
.html() は、要素の内部 html を提供します。<img>
要素は null/空であるため、内部 html がないため、空の文字列が得られます。
あなたが欲しいのは外側のhtmlです
$(html_string)[0].outerHTML
jQuery.html()
は、選択した DOM 要素内の HTML コードを返しますが、要素の HTML は返しません。イメージ要素内に HTML がないため、空の文字列を取得しているのはそのためです。jQuery はこれに対する解決策を提供しませんが、DOM 要素 (jQuery 要素ではない) で outerHTML を使用できます。jQuery でこれを行う場合は、要素を作成し、必要なものをその中に入れてから、 を使用します.html()
。見て:
var string = '<img src="a.jpg"/>';
var $el = $(string);
var $wrapper = $('<p>').append($el).html();
私が助けたことを願っています。