动态更改HTML表的ID

时间:2012-10-25 18:35:37

标签: javascript jquery ruby-on-rails ruby html5

<% @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 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分:2)

<% @level1.each_with_index do |row1, index| %>
  <table id= <%= "tbl_main#{index}" %> name="tbl_main1">

会做你想要的事情。

答案 2 :(得分:0)

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

所以,而不是使用

id="lnk1"

你应该使用

id=someDynamicVariableInYourCode

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

答案 3 :(得分: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}" %>