1

非常に長い HTML コードを含む JavaScript 変数を定義する必要があります。

以下に短い例を示します。

var text = "Select one item:<br>";
text += "<ul class='thumbnails'><li class='span3'><a href='#' class='thumbnail'><img src='http://placehold.it/260x180' alt=''></a></li></ul>";

HTML はかなり長くなるので、javascript 文字列にテキストを追加するのではなく、純粋な HTML で作業したいと思います。

別の html ファイルを作成することを考えましたが、そのコンテンツを取得するには Ajax 呼び出しが必要になると思います。これに対処する最善の方法は何ですか?

4

4 に答える 4

1

N.Zakas が " maintainable javascript " book で述べたように、UI レイヤーの疎結合によってコードの高度な保守性を促進するために、「javascript から html を除外」する必要があります。

ajax ソリューションのほかに、マークアップをコメントとして html ファイルに配置し、javascript を介して (通常の DOM ノードとして) 読み取るか、ある種のマイクロテンプレート システム (ハンドルバーなど) を使用して、マークアップをスクリプト ブロックに配置することもできます。 (アイデアは、JavaScriptロジックではなく、見つかると予想される場所にマークアップを配置することです)

于 2012-08-10T10:38:55.110 に答える
1

考えられる解決策の 1 つは、テンプレートを使用することです。テンプレートを提供する JavaScript ライブラリがいくつかあります。underscore.js はその 1 つです: http://underscorejs.org/#template、またはテンプレートへの使用方法の詳細はhttp://www.headspring.com/blog/developer -deep-dive/an-underscore-templates-primer/

さらにアンダースコアは、他の多くのことに最適です。

于 2012-08-10T10:39:17.263 に答える
0

Javascript で HTML を文字列として構築する代わりに、これらの html 要素をページ自体に出力し、読み込み中は非表示にすることをお勧めします。次に、Javascript で、そのコンテナーを選択して表示できます。

于 2012-08-10T10:38:06.377 に答える
0

テキストを実際の HTML オブジェクトに分割できます。

var thumbnailsUL = document.createElement('ul');
for (index in {your-thumbnails-list}) {
  var thumbnail = document.createElement('li');
  thumbnail.innerHTML = {whatever you need, more objects or html as text};
  thumbnailsUL.appendChild(thumbnail);
}

しかし、理想的には、これを JavaScript でビルドする理由はありません。サーバーから発行できないのでしょうか?

于 2012-08-10T10:39:48.593 に答える