2016-12-14 5 views
1

私は、HTMLドキュメントを構築するためのJavaScriptフレームワークを作成しています。まず、jQueryを使用して仮想ドキュメントを作成します。今、私はjQueryのを試していますので、同様の機能「を追加」:

$(target).append($("").add($("<div>")).add($("<span>"))) 

をフレームワークは、それが対象に追加される前に、仮想ドキュメントを構築するために、これらの呼び出しを連結 - この簡略化されたコードサンプルISN」文字通り私がやっていること。最初の$( "")を追加する理由は、フレームワークが空のjQueryセレクションを作成して開始し、それに追加するためです。サブ文書は再帰的に作成され、親要素に追加されます。

これは、要素を連結しても問題ありませんが、テキストを連結したい場合はどうすればいいですか? <div>はDOMにすでにある場合を除き、私はちょうど$("<div>").add("Outside the box!")また、$.after()が動作するようには思えないんすることはできません

<div></div> Outside the box! 

:のは、私はこのレンダリングされたようなものを持ちたいとしましょう。

この機能はjQueryでサポートされていますか?そうでない場合、回避策はありますか?

+0

@Amadan残念ながら、想定されている複製はまったく別の問題です。また、divに連結されるテキストは、フレームワークの将来のユーザーからのものであり、エスケープしたくないマークアップを含むことがあります。しかし、提案をありがとう。 – JSideris

答えて

1

はい、あなたは要素の現在のHTMLで簡単な文字列の連結を使用することができます:あなたのコードのDOMはメモリではなく、実際のHTMLであるので$('<div>').html($('<div>').html() + 'Outside the box!')


、あなたは複数行のコードを使用する必要があります。

var $div = $('<div>', {html: $('<div>')}); 
$div.html($div.html() + "Outside the box!"); 
+0

これは正常です。基本的には、いわゆる仮想サブ文書を含む一時的な親divを作成します。私は外側のdivを保持したくないので、どのようにすべてのものをコピーして最終的な目的地に入れるのですか? '$ div.children()'を実行すると、内部divの後のテキストは選択されません。 – JSideris

+0

気にしない、私はばかだ。 '$ div.htm();'ありがとう – JSideris

関連する問題