我将jQuery与rails结合使用,并具有以下代码片段
$('#related').html("<%= render :partial => "related_items" %>");
我在浏览器中遇到了一个问题,只有在部分元素中没有换行符时,才会替换#related元素的内容。
这没什么大不了的,我可以把所有东西都放在一行上,但这会使代码很难读懂。
有没有办法避免在jQuery html()属性中省略换行符?
发布于 2009-07-01 13:11:25
这里发生的事情是,<%
和%>
之间的代码首先由Rails解释,然后解释的输出被发送到浏览器。因此,发送到浏览器的内容是:
$('#related').html("Some text with a
line break in it");
这不是有效的javascript,因为javascript不允许多行双引号字符串。您需要对字符串中的换行符进行转义,以便在将它们打印到浏览器时,结果是有效的javascript语句。
发布于 2009-07-01 13:22:01
为了完整起见,这就是我为了让事情正常工作所做的事情。
$('#related').html("<%= escape_javascript(render :partial => "related_items") %>");
发布于 2009-07-01 13:04:53
...Wait,这段代码不是应该在javascript运行之前就被处理吗?或者,出于教育原因,您是否正在尝试以纯文本格式打印代码?
https://stackoverflow.com/questions/1071386
复制