0
<% @level1.each do |row1| %>
<table id="tbl_main1" name="tbl_main1">
    <tr>
        **<td><a href="javascript:toggle_visibility('tbl1','lnk1');">**
            **<div align="right" id="lnk1" name="lnk1" width="2%">[+]</div></a></td>**      
    </tr>
    <tr>
                 **<table id="tbl1" name="tbl1">**
                <tr><td height="0.5" bgcolor="#EEEEEE"></td></tr>
                   </table>
    </tr>
</table>
<% end %>

我想在运行时使用 Ruby 中的循环创建多个表。但我想动态更改“link1”和“tbl1”的 id,以便每个表都有一个唯一的“tbl”名称和“lnk1”名称。

4

4 回答 4

3

您可以使用 row1 的某些元素来执行此操作。伪代码如下:

<% @level1.each do |row1| %>
<table id="tbl_main1#{row1.id}" name="tbl_main1">
    <tr>
        **<td><a href="javascript:toggle_visibility('tbl1#{row1.id}','lnk1#{row1.id}');">**
            **<div align="right" id="lnk1#{row1.id}" name="lnk1" width="2%">[+]</div></a></td>**      
    </tr>
    <tr>
                 **<table id="tbl1#{row1.id}" name="tbl1">**
                <tr><td height="0.5" bgcolor="#EEEEEE"></td></tr>
                   </table>
    </tr>
</table>
<% end %>
于 2012-10-25T18:42:21.633 回答
2
<% @level1.each_with_index do |row1, index| %>
  <table id= <%= "tbl_main#{index}" %> name="tbl_main1">

我会做你想做的事。

于 2012-10-25T19:30:00.493 回答
0

正如上面评论中提到的,您应该更改代码来执行此操作。当您只需更改代码即可立即满足您的需求时,没有理由依赖客户端脚本或代码修改。

所以,而不是使用

id="lnk1"

你应该使用

id=someDynamicVariableInYourCode

此外,如果你能解释为什么你需要这个以及你试图用这个来实现什么,那么理解你想要什么会容易得多。

于 2012-10-25T18:43:01.370 回答
0

确切的语法是这样的:

<td><a href="javascript:toggle_visibility('<%= "tbl1#{index}" %>', '<%= "lnk1#{index}" %>');>
......
......
div align="right" id=<%= "lnk1#{index}" %> name="lnk1" width="2%">[+]</div></a></td>
...... 
......
<table id=<%= "tbl1#{index}" %>
于 2012-10-25T22:25:58.010 回答