jQueryに類似したPrototypeのHTMLから要素を作成する方法はあります$('<div>Foo</div>')
か?
基本的に、HandlebarsテンプレートからHTMLチャンクを作成し、DOMに挿入したいが、他の要素でラップしたくない。
jQueryに類似したPrototypeのHTMLから要素を作成する方法はあります$('<div>Foo</div>')
か?
基本的に、HandlebarsテンプレートからHTMLチャンクを作成し、DOMに挿入したいが、他の要素でラップしたくない。
同じ問題を解決するために、最近のプロジェクトの1つで、この関数を「静的メソッド」としてMustacheに追加しました。これを解決するためにPrototypeに組み込まれているものはないと思います。テンプレートコードを保持するために非表示のテキストエリアを使用したため、$F()
呼び出しが行われました。最後の3行は、問題に固有のものです。新しいdivを作成し、適用したテンプレートhtmlを挿入してから、最初の子孫を返します(この時点で要素として)。これは、テンプレートにルート要素が1つしかないことを前提としています。
Mustache.createElementFromTemplateId = function(templateId, data) {
if (!this.cachedTemplates) this.cachedTemplates = {};
var templateStr = this.cachedTemplates[templateId];
if (!templateStr) {
templateStr = $F(templateId);
this.cachedTemplates[templateId] = templateStr;
}
var appliedTemplateStr = this.render(templateStr, data);
var div = new Element("div");
div.insert( appliedTemplateStr );
return div.firstDescendant();
};