2009-05-04 4 views
0

JQueryでテーブル要素を選択して操作する必要があります。次のセレクタの作品が、私だけ途中を取得します:ノー成功を収めて試してみました最初の行に1列以上の列がある場合にのみテーブルを選択するにはJQueryが必要です

$('#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つのカラムしかない場合に明らかに爆発的になります。

答えて

1

オレのチェックはどうですか?

if (1 < $('#tbl thead th').size()) ... 
+0

@ neouser99ありがとう、それはトリックでした。 FWIW、tbody内に行が必要なので、私の解決策は次のとおりです。 if(1 <$( '#tbl_id tbody tr td')。size()){... – aponzani

0

それは周りハッキング実際修正 tablesorterの代わりに簡単ではないでしょうか? (私はあなたがhttp://tablesorter.com/を意味すると仮定します)。

+0

tablesorterの他の問題は、列のデータ型は最初の行のみで指定します。 – van

+0

これまでのところ、私はtablesorterにはとても満足しています。それdef。 DBに戻り、動的SQLを作成してORDER BYを変更します。そして私は新しいバージョンをリリースするたびに再ハッキングしたくないので他の誰かのライブラリをハッキングしたくないと思う。 – aponzani

+0

良い点。作者があなたの修正を組み込むのが喜んでいると確信している。 – van

0

私は(もTableSorterの古いバージョンのための)次のセレクタでこれを行うために管理:

#tableID:has(tbody > tr > td + td)

アイデアは、それがtrtbodyを持っている場合にのみ、テーブルを見つけることですそれに少なくとも2つの兄弟tdがあります。

関連する問題