我有一个 .js.erb 文件,它需要根据关联控制器中使用的变量替换视图的跨度。我想不出正确的符号来让电话工作。 @i
在控制器中分配。这是 .js.erb 调用:
$("span#remove_name_" + <%= @i %>).html("<%= escape_javascript(render(:partial => 'remove_position'))%>");
例如,我希望替换的跨度名称是remove_name_42
。
谢谢。
我有一个 .js.erb 文件,它需要根据关联控制器中使用的变量替换视图的跨度。我想不出正确的符号来让电话工作。 @i
在控制器中分配。这是 .js.erb 调用:
$("span#remove_name_" + <%= @i %>).html("<%= escape_javascript(render(:partial => 'remove_position'))%>");
例如,我希望替换的跨度名称是remove_name_42
。
谢谢。
我只讲这部分代码:$("span#remove_name_" + <%= @i %>)
您必须了解具有双扩展名的文件是如何工作的。在这种情况下,您有一个“.js.erb”类型的文件,这意味着您的文件将首先由 erb 解释,结果将是一个将由浏览器解释的 js 文件。两种解释是分开进行的。
关于 erb 解释:请记住,这只是某种“文本处理”。如果您尝试逐步弄清楚附加的内容:
$("span#remove_name_" + <%= @i %>)
<%= @i %>
if @i 的值,即 'example'$("span#remove_name_" + example)
如果您的 js 代码声明了一个名为“example”的变量,并且生成的代码$("span#remove_name_" + example)
是您所期望的,那么这很好。
但是,如果您的 js 代码未声明“示例”变量,并且您正在期待此代码$("span#remove_name_example")
,因为您正在搜索 id 为“remove_name_example”的跨度,那么必须这样做:
$("span#remove_name_<%= @i %>")
<%= @i %>
if @i 的值,即 'example'$("span#remove_name_example")
看看我们如何在字符串中移除+
和移动?<%= @i %>
再次考虑“文本处理”并记住 erb 将变量替换为其值。