>im 试图在 ERB 中的 Rails 标记中连接动态 int。主要思想是动态更新信息框文本。
for (i=2;i<=numplayers;i++)
{
document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i+"].name %>';
}
如果我尝试类似的东西
document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i+"].name %>';
它发送错误
can't convert String into Integer
尝试了很多组合,知道吗?
尝试:
document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i.to_s"].name %>';
但是,看起来你也想要一个数组的索引,但在这种情况下,你应该只使用:
document.getElementById("infobox2").innerHTML = '<%= @plrdet[i].name%>';
更新。。。
我相信问题在于当你想要JavaScript变量时,你试图执行Ruby代码。 我相信这可能会起作用。
document.getElementById("infobox2").innerHTML = "<%= @plrdet["+i+"].name%>";
请注意使用的双引号,而不是单引号和开头和结尾。
你必须反过来做。您的 JavaScript 代码将在客户端浏览器中进行评估,在此之前i
未知。在这些条件下,<%= @plrdet[i] %>
不会被 Rails 评估。
<% for i in (0..numberofplayers) do %>
document.getElementById("infobox2").innerHTML= '<%= @plrdet[i].name %>';
<% end %>
不过,您必须能够在ERB中评估numberofplayers
。
for(i=2;i<=numplayers;i++)
{
document.getElementById("infobox2").innerHTML = <%= @plrdet[i].name%>;
}