У меня есть форма, которая будет публиковать данные в таблицу и разделять данные на две строки: заголовок строки и тело строки (аналогично загрузочному заголовку гармошки и телу карты). Изначально всякий раз, когда я нажимаю на кнопку, переключаются оба тела строк. Теперь, это только переключение тела первого ряда.
Как использовать ключевое слово this
, чтобы при нажатии button1
на row-header1
переключалось row-body1
, а button2
на row-header2
переключалось row-body2
?
Это код, с которым я на самом деле работаю, но он содержит ejs:
<table class="table table-hover table-sm">
<thead>
<tr>
<th><i class="fas fa-cart-plus"></i></th>
<th>Deadline</th>
<th>Award</th>
<th>Fee</th>
<th>#Copies</th>
<th>Genre</th>
<th>More Info</th>
</tr>
</thead>
<tbody>
<!--Row header-->
<tr id="table-header">
<% awards.forEach(function(award){ %>
<td><input type="checkbox" name="" value=""/></td>
<td><%= award.deadline %></td>
<td><%= award.awdname %></td>
<td>$<%= award.fee %></td>
<td><%= award.copies %></td>
<td><%= award.genre %></td>
<td><button id="moreInfo">Click Me</i></button></td>
<!--Row body -->
<tr id="table-body">
<td colspan="7">
<div class="showContent hide"><label for="">Description:</label> <%= award.desc %></div>
<div class="showContent hide"><label for="">Sponsored by:</label> <%= award.sponsor %></div>
<div class="showContent hide"><label for="">Prize: $</label><%= award.prize %></div>
<div class="showContent hide"><label for="">Shipping status:</label> <%= award.postorarrive %></div>
<div class="showContent hide"><label for="">Website:</label> <%= award.url %></div>
</td>
</tr>
<tr><% }); %></tr>
</tbody>
</table>
SCRIPT
$("#table-body").hide();
$("#moreInfo").on("click", function() {
$("#table-body").toggle();
});
См. Мой JSFiddle для модифицированной версии вышеуказанного кода, но без ejs.
Я провел дни, рассматривая подобные вопросы и пытаясь адаптировать данные ответы к моему сценарию, но безуспешно.