24

文字列から作成された html 要素を、いくつかの変更後に文字列に変換したいと思います。しかし、代わりに空の文字列を取得します。

$('<iframe width="854" height="480" src="http://www.youtube.com/embed/gYKqrjq5IjU?feature=oembed" frameborder="0" allowfullscreen></iframe>').html();

どうすれば別の方法でそれを行うことができますか?

4

5 に答える 5

43

あなたはこれを行うことができます:

var $html = $('<iframe width="854" height="480" src="http://www.youtube.com/embed/gYKqrjq5IjU?feature=oembed" frameborder="0" allowfullscreen></iframe>');    
var str = $html.prop('outerHTML');
console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

フィドルのデモ

于 2013-11-06T12:50:01.210 に答える
37

必要なのは、内側の HTML ではなく、外側の HTML です。

$('<some element/>')[0].outerHTML;
于 2013-11-06T12:49:02.510 に答える
1

(document.body.outerHTML).constructor戻りStringます。(離陸.constructor、それがあなたの紐です)

それはそれをやります:)

于 2014-01-15T19:05:56.660 に答える
1

少し異なるアプローチを試してください。

//set string and append it as object
var myHtmlString = '<iframe id="myFrame" width="854" height="480" src="http://www.youtube.com/embed/gYKqrjq5IjU?feature=oembed" frameborder="0" allowfullscreen></iframe>';
$('body').append(myHtmlString);

//as you noticed you can't just get it back
var myHtmlStringBack = $('#myFrame').html(); 
alert(myHtmlStringBack); // will be empty (a bug in jquery?) but...

//since an id was added to your iframe so you can retrieve its attributes back...
var width = $('#myFrame').attr('width');
var height = $('#myFrame').attr('height');
var src = $('#myFrame').attr('src');
var myReconstructedString = '<iframe id="myFrame" width="'+ width +'" height="'+ height +'" src="'+ src+'" frameborder="0" allowfullscreen></iframe>';
alert(myReconstructedString);
于 2013-11-06T13:47:21.907 に答える