jquery - 从 js.erb 模板渲染部分内容会生成带有 html 标签剩余部分的内容

标签 jquery ajax ruby-on-rails-3

我在渲染时遇到问题 @results来自show.js.erb 。输出如下:output from show.js.erb template

show.js.erb

$('#results').empty();
$('#results').html("<ul><%= escape_javascript(render(@results)).html_safe %></ul>");

_result.html.erb

<li>
  <%= link_to(result.title, result.uri) %><br>
  <span class="urls"><%= result.uri %></span>
</li>

使用_result.html.erbshow.html.erb :

<ul>
  <%= render @results %>
</ul>

产生正确的输出。

疑似罪魁祸首是<%= escape_javascript(render(@results)).html_safe %> 。 我试过<%= raw(escape_javascript(render@results)) %>但没有运气。 应用程序是使用 Rails 3.0.8 创建的。

编辑1:

更长版本的show.js.erb:

$('#results').empty();
$('#results').html("<ul><%= escape_javascript(render(:partial => "results/result",   :collection => @results)).html_safe %></ul>");

输出与 a> 图像上的输出保持相同, li>等等。

编辑2:

show.js.erb 呈现的 HTML : enter image description here

编辑3:

<a href="http://jasonseifer.com/2010/04/06/rake-tutorial">Rake Tutorial | Jason Seifera&gt;<br>  <span class="urls">http://jasonseifer.com/2010/04/06/rake-tutorialspan&gt;li&gt;</span></a>

编辑4:

没有html_safe :

$('#results').empty();
$('#results').html('<ul><%= escape_javascript render(@results) %></ul>');

输出:

output without html_safe

</已经被escape_javascript吃掉了.

编辑 5:正在运行!终于!

$('#results').html('<%= escape_javascript("<ul>#{render(@results)}</ul>").html_safe %>');

这是 Dogbert 的回答 .html('')报价和.html_safe .

最佳答案

请尝试将其用于您的 js.erb

$('#results').html(<%= escape_javascript "<ul>#{render(@results)}</ul>"%>);

关于jquery - 从 js.erb 模板渲染部分内容会生成带有 html 标签剩余部分的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318125/

相关文章:

jQuery - 悬停时更改颜色的亮度

javascript - 在 javascript 中注册事件监听器的最有效方法是什么

php - 使用单点输入 PHP 时定义 $_POST 变量

javascript - AJAX XMLHttpRequest POST

ruby-on-rails-3 - rails 中的保留字列表 *3*

ruby-on-rails-3 - Ruby 调试器在 Windows 上崩溃

ruby-on-rails-3 - 在端口 80 启动 webrick(mysql2 gem 问题)

jquery - 如何使用旋转 css 以及 jQuery 可拖动 ASP.NET

jQuery 单击位于另一个 div 之上的 div

php - 在 JS 中下载用 PHP 创建的 ZIP 文件