Ну, главная проблема в том, что вы используете идентификационную метку "myDropDown
" для всех строк раскрывающегося содержимого. Атрибут "id
" в HTML должен быть уникальным для всего документа - и у вас одинаковая идентификационная метка во всех строках. Естественно, только первый «берет», а все остальные игнорируются.
То, что вы хотели бы сделать, - это иметь уникальный id
для каждого раскрывающегося списка, передать его нажмите на кнопку и используйте ее, чтобы найти правильный раскрывающийся список в функции. К счастью, у вас, вероятно, уже есть полезный идентификационный номер: если в вашей таблице есть столбец идентификатора строки, как это принято, то вы можете просто использовать его.
В приведенном ниже примере я собираюсь предположить, что ваше числовое c auto_increment
поле идентификатора строки называется id
, поэтому ваш обновленный ASP может выглядеть следующим образом:
<table class="grid">
<tr class="capt alnl clrb">
<td>ID</td>
<td>Aircraft</td>
<td>Flight</td>
</tr>
<%
while not records.eof
%>
<tr id="bdshow" onclick="openclose(<%=records("id")%>)" class="seq<%=no mod 2%> dropbtn">
<td class="clrg"><%=records("idflights")%></td>
<td class="clrg"><%=records("aircraftCode")%></td>
<td class="clrg">Flight <%=records("flightNo")%></td>
</tr>
<tr id="myDropdown-<%=records("id")%>" class="dropdown-content">
<td colspan="3" class="alnc clrb fntb">
<%=records("datearrival")%>
</td>
</tr>
<%
records.moveNext
wend
, и сценарий должен будет взять эту цифру c id и использовать ее следующим образом:
function openclose(rowid)
{
document.getElementById("myDropdown-"+rowid).classList.toggle("show");
var elem = document.getElementById("bdshow");
}