2017-10-11 21 views
-2

私は、現在のクリックされたIDの下のテーブル行を取得したいと思います。しかし、それは常にテーブルの最初の行の下に来る。クリックしたIdの下にイメージを表示したい。この混乱を理解するために私を助けてください。レールの各ループ要素をjqueryに取得する方法

コードがあるレールの上の私のルビー....

<table> 
    <tr> 
    <th>ID</th> 
    <th>Name</th> 
    <th>Address</th> 
    </tr> 
    <% @student.each do |stu|%> 
    <tr> 
    <td><%= link_to stu.id ,'#', :onclick => "showImage()"%></td> 
    <td><%= stu.name></td> 
    <td><%= stu.address%></td> 
    </tr> 
    <tr><td colspan='3'><div id="image" style="display: none"><%= image_tag stu.image %></div></td></tr> 
    <% end %> 
</table> 

javascriptコード:あなたのdivのすべての動的IDを設定していないことはので、ここで画像が含まれてい

<script> 
    function showImage(){ 
    document.getElementByID("image").style.display='none'; 
    } 
</script> 
+0

おかげ –

答えて

0

理由は、これを試してみてください。

の1-

<% @student.each do |stu|%> 
    <tr> 
    <td><%= link_to stu.id ,'#', :onclick => "showImage(stu.id)"%></td> 
    <td><%= stu.name></td> 
    <td><%= stu.address%></td> 
    </tr> 
    <tr><td colspan='3'><div id="<%=stu.id%>" style="display: none"><%= image_tag stu.image %></div></td></tr> 
    <% end %> 
スクリプトタグ変化

2-次の提案のために

<script> 
    function showImage(image_id){ 
    document.getElementByID(image_id).style.display='block'; 
    } 
</script> 
関連する問題