当用户在表中单击按钮时,我正在使用 JQuery 显示隐藏的“元素”(使用 css 隐藏 ---> display:none)。我正在使用 Rails、Ruby、JQuery 和 HTML。
查看代码:
<h2>Files</h2>
<table class="table">
<tr>
<th>Filename</th>
<th>Description</th>
<th>Download Link</th>
</tr>
<% @files.each do |file| %>
<% filename = file.split('/').last %>
<% object = @bucket.objects[file] %>
<tr>
<td><%= filename %></td>
<td>
<div class="file_description"><%= object.metadata['description']%>
<button id ="file3" type="button" class= "btn btn-default
edit_description" onclick="Window(this)">Edit</button>
</div>
<div id = file2 class="file_description_update" >
<%= form_tag({:action => 'update_file_info'}, multipart: true) do %>
Update File Description: <%= text_area_tag :description %>
<%= hidden_field_tag :s3_path, file %>
<%= hidden_field_tag :prefix, @prefix %>
<%= submit_tag 'Submit' %> </td> <br />
<% end %>
</div>
</td>
<td><%= link_to "Download", download_url_for(file) %></td>
</tr>
<% end %>
</table>
当前的 JQuery 代码(在单击任何单个按钮时显示所有隐藏的“td”元素,其中包含嵌入的 ruby 中的 form_tag):
$(document).ready(function(){
$( "button.edit_description" ).on( "click", function( event ) {
$( "div.file_description_update" ).show();
});
});
如上所示,我的显示代码在一个 ruby for 循环中,现在,当我单击任何按钮时,使用我现有的 Jquery 代码,所有隐藏的 'td' 元素都会显示给所有按钮 --- 我的需要是我希望它只为相应的单个按钮显示相应的隐藏“td”元素。我不确定如何在 HTML 中使用属性或在 Jquery 中为此做一些事情。
有人可以用代码指导我吗?谢谢