親テーブルの行内に子テーブルが宣言されています。親テーブルのセルがクリックされたときに子テーブルの表示を切り替えたいと思います。ページが読み込まれると、子テーブルはデフォルトで非表示にする必要があります。ネストしたテーブルのtdを選択するJQuery
親td要素(クラスshowmore)での私のクリックイベントが検出されていますが、子テーブルを含む親tr要素(クラスorder_extra_info)のcssプロパティを変更するための正しいセレクタを見つけることができません。この行にcssプロパティdisplay:noneを設定することで、その中に含まれる子テーブルを完全に非表示にしたいと思います。
現在のjqueryコードでは、私は子供を選択しているようです。助言がありますか?
$(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>
このソリューションでは、与えられたコードスニペット上で動作し、私は正しい、それを投票していますが、私はそれは私の完全なコードを動作させることはできません。私の完全なコードは正確に同じスニペットを使用しているだけで、より多くの行と列を持つより大きなテーブルです。何が間違っている可能性があるかに関するアイデア? –
コンソールを確認してください。そこに何かエラーがありますか? –
エラーはありません、私はそれが私のネストしたテーブルを考慮してセレクタに関連するものだと思います。 –