現在、入力検索バーにテキストが含まれていない行を除外する検索バーを実装しようとしています。
私の現在のソリューションは機能していますが、機能させたいとは思っていません。これは、テーブルの各行で、列の1つに別のテーブルが含まれているためです。
これが私のテーブルのhtmlです:
<table class="xxxxx" id="xxxx">
<thead>
<tr class="active">
<th style="width:30%">xxx</th>
<th style="width:30%">xxx</th>
<th style="width:25%" align="right">xxx</th>
<th style="width:2%"></th>
</tr>
</thead>
<tbody id="tableBody">
<tr t-foreach="xxxxx" t-as="xxxxx">
<td>
<a "xxxxxxxxxxxxxxxxxx">
<span "xxxxxxxxx"/>
</a>
</td>
<td>
<span "xxxxxxxxxxx"/>
</td>
<td>
<span "xxxxxxxxx"/>
</td>
<td>
<table style="width:100%">
<tr>
<td>
<div>
<a>xxxxx</a>
</div>
</td>
<td>
<div>"xxxxxx"</div>
</td>
</tr>
</table>
</div>
</t>
</td>
</tr>
</tbody>
</table>
これが私の現在のフィルターです:
$("#search").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#tableBody tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
ご覧のとおり、「tableBody」のすべての「tr」要素をフィルタリングします。この行のテーブルがフィルターと一致しない場合、フィルターで除外されていない行のテーブルが削除されるため、これは問題です。最初の「tr」のみをフィルタリングし、それらの「tr」の「tr」要素はフィルタリングしません。
これはどのように行う/達成できますか?
前もって感謝します、
の代わりに...
$("#tableBody tr")
使用する...
$("#tableBody > tr")
>
意味tr
の直接の子でなければなりません#tableBody
し、それが他のすべて無視するtr
要素は、ツリーを下に下げます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加