У меня есть дочерняя таблица, объявленная внутри родительской строки таблицы, и я хотел бы переключить видимость дочерней таблицы, когда была нажата ячейка родительской таблицы. Детский стол должен быть по умолчанию скрыт при загрузке страницы.Jquery select td для вложенных таблиц
Обнаружено мое событие click на родительском элементе td (класс showmore), но мне трудно найти правильный селектор для изменения свойства css родительского элемента tr (class order_extra_info), который содержит дочернюю таблицу. Установив отображение свойства css: none в этой строке, я хотел бы полностью скрыть дочернюю таблицу, содержащуюся внутри.
С текущим кодом jquery кажется, что я выбираю child td. Какие-либо предложения?
$(document).on('click', 'td.showmore', function() {
var id = ($(this).html());
if ($('tr.order_extra_info#' + id + ' td').is(":visible")) {
$('tr.order_extra_info#' + id + ' td').css("display", "none");
} else {
$('tr.order_extra_info#' + id + ' td').css("display","table-cell");
}
});
.order_extra_info {
display:none;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td style="width: 1px;" class="text-center">
<input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);">
</td>
<td class="text-right">ID </td>
<td class="text-left">Status</td>
<td class="text-right">Total</td>
<td class="text-left">Date</td>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center">
<input type="checkbox" name="selected[]" value="1545">
<td class="text-right showmore">1545</td>
<td class="text-left">waiting</td>
<td class="text-right">50</td>
<td class="text-left">18.09.2016</td>
</tr>
<tr class="order_extra_info" id="1545">
<td colspan="15">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td class="text-left" width="25%">Extra 1</td>
<td class="text-left" width="25%">Extra 2</td>
<td class="text-left" width="50%">Extra 3</td>
</tr>
</thead>
<tbody>
<tr>
<td class="text-left">Data
<br>Data
<br>Data
<br>Data</td>
<td class="text-left">Data
<br>Data
<br>Data
<br>Data</td>
<td class="text-left">Data
<br>Data
<br>Data
<br>Data</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Это решение работает на данном фрагменте кода, и я проголосовал как правильно, но я не могу заставить его работать на моем полном коде , Мой полный код использует тот же самый фрагмент, но это большая таблица с большим количеством строк и столбцов. Любые идеи о том, что может быть неправильным? –
Не могли бы вы проверить консоль? Есть ли ошибка? –
Нет ошибок, я думаю, что это связано с селекторами, рассматривающими мои вложенные таблицы. –