Чтобы получить следующую строку из td, используйте:
var tr = $(this).closest("tr");
, чтобы получить содержащий tr
, тогда вы можете использовать tr.next()
или эквивалент.
Обратите внимание, что .nextUntil
получит все строки до соответствующей строки (за исключением совпадающей строки). Чтобы переключать дополнение, а не строки между ними, вы можете использовать:
tr.nextAll(".line-addendum").first()
, чтобы получить соответствующее дополнение. (это может не соответствовать вашим точным требованиям, поэтому может быть расширено в вопросе)
Предоставление (при сохранении большей части исходного кода):
$('div.arrow').click(function() {
$(this)
.closest("tr")
.nextAll('tr.line-addendum')
.first()
.css('display', function(i, v) {
return this.style.display === 'table-row' ? 'none' : 'table-row';
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr class="line-validity">
<td class="field" nowrap>
<div class="arrow">
Associa
</div>
</td>
</tr>
<tr class="line-addendum" style='display:none'>
<td>addendum</td>
</tr>
</table>