私は、2つの方法で特定のマークアップを構築する際の長所と短所を比較しています。 は、私はJavaScriptを使用して、このシンプルなHTMLマークアップを作成したいとしましょう:純粋なjqueryを使ったhtmlマークアップVSアンダースコアテンプレートメソッド
<li><img data-id="a" src="/src"></li>
<li><img data-id="b" src="/src"></li>
<li><img data-id="c" src="/src"></li>
<li><img data-id="d" src="/src"></li>
<li><img data-id="e" src="/src"></li>
あなたは、むしろそのように純粋なjQueryを使ってそれをやって、次のようになります。
$.each(obj, function(key, value) {
$("<li/>")
.attr({"data-id":key})
.append(
$("<img/>", {
src: value.pic
})
).addClass("selected")
.appendTo("document");
})
またはあなたが例えばテンプレートを作る好みますunderscore.jsテンプレートメソッドのように:
var listObj = '<% $.each(obj, \
function(key, value) { %> \
<li class="selected" data-id= <%= key %> ><img src= <%= value.pic %> ></li> \
<% }); %>';
$("document")append(_.template(listObj, {obj: obj}));
また、どのようなアイデアは、より多くのマークアップとコードの場合に速いですか? (また、それは、その文字列を考えているので、また、私のコードエディタTextMateは構文を強調doesntのため、私は少し気にテンプレート文字列listObj
、でハイライト表示欠落している構文を気づか)
さて、聞こえますが、私はまだ本当に満足していません。 jQuerysのデータメソッド[link](http://api.jquery.com/data/)を使用してマークアップを構築しているときに、dom要素にデータを追加したい場合はどうすればよいでしょうか。私はテンプレート内でそれを行うことはできません.DOM要素は単なる文字列なので... – Hans
まあ、データ属性を使用してデータを格納することができます。
私が与えたページの「HTML 5データ属性」を参照してください。 – Sergeyはい、私はそれをいくつかのケースで行いましたが、可能であればdomにないデータを格納することは、私にとってとても優雅なようです。私は、現在のjsテンプレートエンジンでは不可能だと思っています...しかし、私は今、私にとって本当に唯一の欠点であるため、方法を見つけようとしています。私は今口髭を探していますが、haventもそれで道を見つけました。 http:// stackoverflow。com/questions/6977727 /とにかくアドバイスのためのmustache-js-how-to-hook-up-data thx – Hans