1行目に複数の列がある場合にのみ、テーブルを選択するためにJQueryが必要
-
03-07-2019 - |
質問
JQueryを使用してテーブル要素を選択して操作する必要がありますが、これには複数の列を持つ少なくとも1つの行が含まれている場合のみです。次のセレクターは機能しますが、途中でしか取得できません:
$('#my_table_is:has(tbody tr)').doSomething();
試したが成功しなかったバリエーションは次のとおりです。
$('#my_table_id:has(tbody > tr > td:eq(1))').doSomething();
$('#my_table_id:has(tbody tr:nth-child(1))').doSomething();
$('#my_table_id:has(td:eq(1))').doSomething();
セレクターとフィルターのどの組み合わせがこの機能を実現しますか?
ところで、これが必要な理由は、複数列のsortListを持つtablesorterは、テーブル出力に1列しかない場合に明らかに爆発するからです。
解決
適切なoleチェックはどうですか?
if (1 < $('#tbl thead th').size()) ...
他のヒント
ハッキングする代わりに、実際にテーブルソーターを修正する方が簡単ではないでしょうか? ( http://tablesorter.com/ を意味すると仮定します)。
次のセレクターでこれを行うことができました(TableSorterの古いバージョンでも):
#tableID:has(tbody&gt; tr&gt; td + td)
アイデアは、少なくとも2つの兄弟 td
を含む tr
を持つ tbody
がある場合にのみテーブルを検索するというものです。それ。
所属していません StackOverflow