Javascript 如何使用rails标记concat整数?

Javascript 如何使用rails标记concat整数?,javascript,ruby-on-rails,erb,Javascript,Ruby On Rails,Erb,我试图在erb内的rails标记中包含动态int。 其主要思想是动态更新信息框文本 for (i=2;i<=numplayers;i++) { document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i+"].name %>'; } 尝试了很多组合,有什么想法吗?试试: document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i

我试图在erb内的rails标记中包含动态int。 其主要思想是动态更新信息框文本

for (i=2;i<=numplayers;i++)
{
    document.getElementById("infobox2").innerHTML= '<%= @plrdet["+i+"].name %>';
}
尝试了很多组合,有什么想法吗?

试试:

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代码将在客户端浏览器中进行评估,直到那时我才知道。在这些情况下,Rails不会对其进行评估

<% for i in (0..numberofplayers) do %>
  document.getElementById("infobox2").innerHTML= '<%= @plrdet[i].name %>';
<% end %>

不过,你必须能够评估ERB的球员数量

谢谢,但不幸的是它不起作用,它仍然向我发送错误,无法将字符串转换为我尝试使用的整数,也没有运气,我也尝试了@user1442066的未定义局部变量或方法“i”,可能您正在寻找类似document.getElementByIDinfobox2.innerHTML=?我假设这是一个.js.erb文件中的JavaScript。对吗?对不起,我是铁路新手。我试图尽可能地简化:函数createPie{document.getElementByDidinFobox2.innerHTML=;}bummer,我以为我做到了。函数createPie{if<{document.getElementByIdinfobox2.innerHTML=;}}仍然不起作用,它应该是函数createPie{document.getElementByIdinfobox2.innerHTML=;}我试过了,它起作用了。
for(i=2;i<=numplayers;i++)
{  
    document.getElementById("infobox2").innerHTML = <%= @plrdet[i].name%>;
}
<% for i in (0..numberofplayers) do %>
  document.getElementById("infobox2").innerHTML= '<%= @plrdet[i].name %>';
<% end %>
for(i=2;i<=numplayers;i++)
{  
    document.getElementById("infobox2").innerHTML = <%= @plrdet[i].name%>;
}