1

テンプレートを使用する場合:

<div id="temp" style="display:none;">
    <h3>{title}</h3>
    <p>{body}</p>
</div>

そしてスクリプト(jqueryバージョン):

var html = $('#temp').html();
var vals = {"title":"Hello","body":"Good bye!"};
html = html.replace(/{(.+?)}/g, vals["$1"]); // this works if replaced with code below

私は自分の交換のために未定義になります

以下のコードは機能しますが、上記のように1行で機能するはずです

matches = html.match(/{(.+?)}/g);  
for(m=0;m<matches.length;m++){
    var match=matches[m].replace("{","").replace("}", "");
    html = html.replace(matches[m],vals[match])
}

これは必要に応じて単純化できますか?

これはテンプレート エンジンには単純すぎるため、そこに行く必要はありません。

4

1 に答える 1

2

の 2 番目の引数として callback を使用できますString.replace()

var result = html.replace(/{(.+?)}/g, function(c, m) { return vals[m]; });
于 2013-01-21T17:25:53.737 に答える