2016-10-03 6 views
-1

私はJavascriptとJqueryの基礎を知っています。しかし、私はJavaScriptの変数でいくつかのHTMLを出力する必要があります。ここで、コードは次のとおりです。このJavaScript内JavaScriptを使って変数にhtmlを出力する

$(function() { 
    var availableTags = [ 
     "{% for entry in craft.entries.find() %}","<a href='{{ entry.url }}'>{{ entry.title }}</a>","{% endfor %}" 
    ]; 
    $("#search-results-general").autocomplete({ 
     source: availableTags 
    }); 
} 
); 

コードが小枝といくつかのhtmlです。私が使用しているCMSはCraft CMSです。

ありがとうございます!

+1

出力?ページに?コンソールに? –

+0

何が問題なのですか?コードは何をしているの? –

答えて

0

通常、Twigはサーバー上で実行されます(最初は)、JavaScriptは通常クライアント上で実行されます(後で、ページがHTMLに変換されると、後で実行されます)。あなたが非常に奇妙な設定を使用していない限り、JavaScriptによって追加されたタグは実行されません。

サーバーサイドのjQueryやクライアント側のtwigライブラリで奇妙なことをしている場合は、より広い問題に対して別のアプローチをとるか、質問を編集して詳細を説明する必要があります。これの目的は小枝はjavascriptのコードの行を生成することです

<script> 
$(function() { 
    var availableTags = [ 
    {% for entry in craft.entries.find() %} 
     "<a href='{{ entry.url }}'>{{ entry.title }}</a>", 
    {% endfor %} 
    ]; 
    $("#search-results-general").autocomplete({ 
    source: availableTags 
    }); 
} 
); 
</script> 

:小枝ファイルのコンテキストで

、あなたのような何かを行うことができるかもしれません。上記のXSSの脆弱性を修正する必要があるかもしれないことに注意してください。

+0

Thanks! This got me a bit cleaner output. Twig is not the problem here, and works fine. An variable in jQeury and/or Javascript, will not output html. Only as plain text. So if i want to output the のようにいくつかのhtmlタグを出力する必要がありますが、それは文字通りhtmlファイルにを出力します。 – SeeklesBodil

+0

js変数にプレーンテキストのhtmlがあると仮定すると、 '$(" containerId "); append(htmlvar);'例えば '$(" body ")append(availableTags);' js –

+0

こんにちは、これは動作します!どうもありがとうございました! – SeeklesBodil

関連する問題