1
在我的一個rails控制器中有一個數組。我想通過它的元素在相應的js.erb文件中循環。問題在於它似乎對每個元素重複兩次。這裏是代碼:js.erb文件中的循環迭代次數比應該循環的次數多一倍
<% @array.each do |element| %>
table_row = document.getElementById("<%= element[:row_id]%>")
if (table_row != null)
{
<% p "row found:" %>
<% p element[:row_id] %>
}
else
{
<% p "row not found:" %>
<% p element[:row_id] %>
}
<% end %>
可以說@array
有3個元素。然後,上面的代碼會產生一個非常奇怪的輸出:
row found:
1
row not found:
1
row found:
2
row not found:
2
row found:
3
row not found:
3
我的第一個問題是:爲什麼有6次迭代時@array
有3個要素是什麼?
第二個問題:爲什麼getElementById
的結果在null和(not null)之間交替?
我覺得有一個代碼問題, 你將如何分配一個JavaScript變量的紅寶石? 'table_row = document.getElementById(「<%= element [:row_id]%>」)' – Amar
Ruby在客戶端的服務器上執行javascript。他們不瞭解對方。你假設他們在同一時間執行;他們不。一個模板文件生成JS,稍後執行。它打印完全你所期望的; Ruby代碼並不關心JS條件。 –