選択したノードを重要な構造でラップしようとしています。この場合、ノードは(必然的に)直接の子孫にはなりません。wrap()
ワンライナーで使うには不十分のようです。
元のHTMLのreplaceWith
プレースホルダー構文を使用して、を使用して動作させることができました。replace
以下は正常に機能し、jQueryプラグインで簡単にラップできます。しかし、もっと良い解決策があるかどうか私は興味があります。
var template = '<div>\
<div>...</div>\
<div>{{original}}</div>\
<div>...</div>\
</div>';
$('p').each(function() {
var o = $(this).html();
$(this).replaceWith(template.replace('{{original}}', o));
});