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 でループを使用して実行時に複数のテーブルを作成したい。しかし、各テーブルが一意の「tbl」名と「lnk1」名を持つように、「link1」と「tbl1」の ID を動的に変更したいと考えています。

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

正確な構文は次のようになります。

<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 に答える
0

上記のコメントで述べたように、これを行うにはコードを変更する必要があります。コードを変更してすぐにニーズを満たすことができる場合、クライアント側のスクリプト作成やコード変更に頼る理由はありません。

したがって、使用する代わりに

id="lnk1"

あなたが使用する必要があります

id=someDynamicVariableInYourCode

さらに、なぜこれが必要なのか、これで何を達成しようとしているのかを説明できれば、あなたが何を望んでいるのかをより簡単に理解できるでしょう.

于 2012-10-25T18:43:01.370 に答える