jQuery html()和换行符

时间:2009-07-01 21:03:14

标签: jquery ruby-on-rails

我正在使用带有rails的jQuery并拥有以下代码

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

我在浏览器中遇到问题,只有当部分中没有换行符时才会替换#related元素的内容。

这不是什么大不了的事,我可以将所有内容放在一行,但这会使代码难以阅读。

有没有办法在jQuery html()属性中省略换行符?

3 个答案:

答案 0 :(得分:3)

这里发生的事情是首先由Rails解释<%%>之间的代码,并将该解释的输出发送到浏览器。那么发送到浏览器的是:

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

这不是有效的javascript,因为javascript不允许使用多行双引号字符串。你需要转义字符串中的换行符,这样当它们打印到浏览器时,结果就是一个有效的javascript语句。

答案 1 :(得分:2)

为了完整起见,这就是我为使事情发挥作用而做的事情。

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

答案 2 :(得分:0)

...等等,是不是应该在javascript运行之前处理的代码?或者您是否出于教育原因尝试以纯文本格式打印代码?