2012-05-07 14 views
1

私のページには、myobjectという名前の要素があります。html Mustache.jsテンプレートを使用したJQueryラップ要素

<div class="outter"> 
<div class="somethingElse"><a href="#">test</a></div> 
{{myobject}} 
</div> 
</div> 

私は、このコードの内部myobjectと上記DOMでコードを作成したいです。

したがって、上記のなる:

<div class="outter"> 
<div class="somethingElse"><a href="#">test</a></div> 
<img id="myCoolImage" src="myimage.jpg"/> 
</div> 
</div> 

理想的には、クラス「outter」とのイメージは、img要素からすべてのスタイル要素を持っているだろうが、それはそれは私のテンプレートに挿入したほど重要ではないのです。

+0

は、中括弧でプレースホルダを置き換えるために、どのように質問です、または適切な場所に要素を追加する方法だけでなく、別の要素にスタイルを転送しますか? – adeneo

+0

@nathanleggattはまだ解決された問題ですか? –

答えて

0

.before().after()

をチェックしてくださいそう...あなたのコードは次のようになります(?Mustache.js)

テンプレートを使用している考慮
$("myCoolImage").before("<div class='outter'><div class='somethingElse'><a href='#'>test</a></div>"); 
$("myCoolImage").after("</div></div>"); 
+0

ありがとうございます。私はそれを確認します。 –

1

あなたにあなたのmyobjectを追加することができますこのようなスクリプト:非テンプレートルートの

$(document.body).on('click', 'button', function(){ 
    var myobject={img: "myimage.jpg"};  
    var output = Mustache.render("<img id="myCoolImage" 
     src={{myobject.img}}/>", myobject);  
}); 

、あなたはjQueryのappend()メソッドを使用する可能性がでsertsこのようなDOM要素の末尾にコンテンツ(HTML):

<div class="outter"> 
    <some-elements></> 
     ...appended stuff goes after all of "outter"'s child elements.. 
     ... but before its closing tag 
</div> 

とJSはこのようなものになるだろう:

$(document.body).on('click', 'button', function(){ 
    var myobject={img: "myimage.jpg"};  
    $('.outter').append("<img id="myCoolImage" src="'+myobject.img+'"/>");  
}); 
0

が、私はこれに答えるためにしようよ、について多くを知りませんどのようにこれは動作するはずですか?それはテンプレートシステム/プラグインではない、との点は、要素とcurlybracketsを交換することで、同時にCSSを動かすことを、私はどうなると仮定すると、

var img = $("#myCoolImage")[0], 
    css = img.style.cssText, 
    wrapper = $(".outter"), 
    wrapperContent = wrapper[0].innerHTML, 
    placeholder = wrapperContent.match(/{{(.*?)}}/gi); 

wrapper.html(wrapperContent.replace(placeholder, img.outerHTML)).get(0).style.cssText = css; 

はここFIDDLEのですそれがどのように機能しているかをご覧ください。

これはインラインCSS文を移動するだけで、外部スタイルシートまたはスタイルタグに設定されたスタイルを移動する必要がある場合は、JavascriptでcurrentStyle/getComputedStyle関数を調べる必要がありますが、スタイルをクラスに適用し、そのクラスをoutter要素に追加するだけです。

0

あなたはトリプル口ひげ使用することができます。その後、{{{MyObjectに}}}

をして:

var template = "<div class="outter"> 
<div class="somethingElse"><a href="#">test</a></div> 
{{{myobject}}} 
</div> 
</div>"; 

$("body").append(Mustache.render(template, {myobject: "<img id="myCoolImage" src="myimage.jpg"/>"})); 
関連する問題