作为 ajax 调用的一部分,我正在尝试使用嵌入式 ruby 在 .js.erb 文件中生成 jquery select 的 id 部分。下面是我如何让它工作的,但我不得不稍微动一下手,让浏览器中的 javascript 将 id 连接到选择器,而不是在服务器上构建 jquery 选择器。
$("tr.design#".concat(<%= @form_column.form_row.id.to_s %>)).html("<%= escape_javascript( render(:partial => "form_rows/row") ) %>")
我尝试了几种组合:
$(<%= escape_javascript("tr.design#" << @form_column.form_row.id.to_s) %>)
$(<%= "tr.design#" << @form_column.form_row.id.to_s %>)
$("tr.design#<%= @form_column.form_row.id.to_s %>")
在每种情况下,返回给客户端的选择器都是 $(tr.design#17) (不带引号),因此没有按照我在客户端上的要求执行,即 jquery 没有找到任何匹配项。
该.html("<%= escape_javascript( render(:partial => "form_rows/row") ) %>")
部分已正确发送到浏览器,即 <%= ... %> 的行为符合预期,并且浏览器上的 javascript 收到了格式良好、引用(和转义)在 .html 函数中传递的 html。
有人对如何避免在 .js.erb 文件中使用 .concat 有任何想法吗?