0

私の Web アプリでは、内容が異なる多数の同一のブロックを作成する必要があります。これらの要素の一部はユーザーの入力から作成する必要があることを考慮して、サーバー上で要素を完全に形成したくありません。したがって、クライアント側でこのようなブロックを作成する方法は 2 つあります。

  1. jQuery (または単に JavaScript) を使用して、要素ごとにブロック要素を作成します。欠点は、これらのブロックを作成するコードが認識できない HTML であることです。これは私の意見では悪いことであり、変更も困難です。
  2. HTML 要素 (div など) を作成し、非表示にしてから複製し、それを使用して必要な新しい要素を作成します。

それでも、どちらの方法が優れているかはわかりません。おそらく、より優れたバリアントがあるかもしれません。この問題をグーグルで検索しようとしましたが、何も見つかりませんでした。

あなたは何をお勧めします?

4

5 に答える 5

3

jquery

var elementClone  = $(element).clone();

または(良くない):

var elementClone = $(element).html();

JavaScript

var elementClone = document.getElementById('elementID').cloneNode(true);

これがあなたを助けることを願っています

于 2012-12-29T15:28:12.730 に答える
1

代替手段は、mustacheunderscore、またはHandlebarsなどのテンプレート エンジンを使用することです。

于 2012-12-29T15:33:15.627 に答える
1

いつでも基本的なDOMを使用できます

var clone = document.getElementById('elementID').cloneNode(true);
document.body.appendChild(clone); //wherever you want to place the cloned element
于 2012-12-29T15:28:00.937 に答える
1

「同一のブロック」と「異なるコンテンツ」の構造に関する詳細がなければ、あなたの質問に非常に良い答えを出すことは困難です.

少し前に同様の(または似たように聞こえる)問題を解決していましたが、純粋なテンプレートエンジンノードの例を繰り返します)は私の問題を解決するのに非常に役立ちました。

于 2012-12-29T15:34:42.423 に答える
0

ご指摘のとおり、これにはいくつかの方法があります。最も一般的なのは、テンプレート エンジンを使用することです。テンプレート エンジンを使用すると、コンテンツのマークアップ (ブロックによって異なります) に集中でき、周囲のマークアップを出力するタスクが自動化されます。

このアプローチの非常に単純な例 (おそらく最も便利ではないものの 1 つ) は、コンテンツを削除された XML としてマークアップし、XSLT を使用してこれを目的の HTML に変換することです。このアプローチに関するチュートリアルは、https ://developer.mozilla.org/en-US/docs/Transforming_XML_with_XSLT にあります。

1 つのテンプレート エンジンを推奨するわけではありませんが、ブラウザー側のさまざまな代替手段を比較する記事を次に示します。

于 2012-12-29T15:31:27.563 に答える