1

erb内のレールタグ付けで動的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

たくさんの組み合わせを試してみましたが、アイデアはありますか?

4

3 に答える 3

0

試す:

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%>";

一重引用符の代わりに二重引用符が使用されていることに注意してください。

于 2012-06-20T15:45:28.550 に答える
0

あなたはそれを逆にしなければなりません。JavaScript コードはクライアント ブラウザで評価され、iそれまではわかりません。これらの条件で<%= @plrdet[i] %>は、Rails によって評価されません。

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

numberofplayersただし、ERBで評価できる必要があります。

于 2012-06-20T15:54:51.957 に答える
0
for(i=2;i<=numplayers;i++)
{  
    document.getElementById("infobox2").innerHTML = <%= @plrdet[i].name%>;
}
于 2012-06-21T04:45:16.170 に答える