我使用jQuery與導軌和具有下面的代碼段jQuery的HTML()和換行字符
$('#related').html("<%= render :partial => "related_items" %>");
我在在瀏覽器中的一個問題,其中#related元素的含量是隻有在部分中沒有換行符時才被替換。
這並不是什麼大不了的事情,我可以將所有內容放在一行上,但它使代碼非常難以閱讀。
有沒有辦法避免jQuery html()屬性中的換行符?
我使用jQuery與導軌和具有下面的代碼段jQuery的HTML()和換行字符
$('#related').html("<%= render :partial => "related_items" %>");
我在在瀏覽器中的一個問題,其中#related元素的含量是隻有在部分中沒有換行符時才被替換。
這並不是什麼大不了的事情,我可以將所有內容放在一行上,但它使代碼非常難以閱讀。
有沒有辦法避免jQuery html()屬性中的換行符?
這裏發生的事情是<%
和%>
之間的代碼首先被Rails解釋,並且該解釋的輸出被髮送到瀏覽器。所以發送給瀏覽器的是:
$('#related').html("Some text with a
line break in it");
這是無效的javascript,因爲javascript不允許多行雙引號字符串。您需要跳過字符串中的換行符,以便在打印到瀏覽器時結果是有效的JavaScript語句。
...等等,是不是應該在JavaScript甚至跑之前處理代碼?或者你是否想出於教育目的而以純文本形式打印代碼?
對不起,我應該解釋一下。這是一個js.erb文件,所以ruby方在發送到瀏覽器之前被執行。 – KJF 2009-07-01 21:13:45
只是爲了完整性,這是我所做的工作。
$('#related').html("<%= escape_javascript(render :partial => "related_items") %>");
沒有意識到這是無效的JavaScript。這就說得通了。我會在紅寶石方面逃避它。 – KJF 2009-07-01 21:14:49