2009-07-01 23 views
3

私はレールとのjQueryを使用していますし、コードjQueryのhtmlの()と改行文字

$('#related').html("<%= render :partial => "related_items" %>"); 

の以下の部分を持って、私は#related要素の内容がブラウザに問題を抱えていますパーシャルに改行がない場合にのみ置換されます。

これは大したことではなく、すべてを1行に配置することができますが、コードを読みにくくします。

jQueryのhtml()属性で改行を省略しなければならない方法はありますか?

答えて

3

ここでは、<%%>の間のコードがRailsによって最初に解釈され、その解釈結果がブラウザに送信されています。それでは、ブラウザに送信されるのはされていますジャバスクリプトが複数行の二重引用符で囲まれた文字列を許可していないので、これは有効なJavaScriptではありません

$('#related').html("Some text with a 
line break in it"); 

。文字列の改行をエスケープして、ブラウザに印刷するときに結果が有効なjavascript文になるようにする必要があります。

+0

これは有効なjavascriptではないことを認識しませんでした。それは理にかなっている。私はルビーの側でそれをエスケープします。 – KJF

0

... JavaScriptが実行される前に待って、そのコードが処理されるはずはありませんか?あるいは、教育上の理由からプレーンテキストでコードを印刷しようとしていますか?

+0

申し訳ありませんが、私は説明する必要があります。これはjs.erbファイルなので、ブラウザに送信される前にルビ側が実行されます。 – KJF

2

完全性のために、これは私が物事を働かせるためにしたものです。

$('#related').html("<%= escape_javascript(render :partial => "related_items") %>");