只有当第一行的列超过1列时,才需要JQuery选择一个表

时间:2009-05-04 19:52:11

标签: jquery selector tablesorter

我需要选择并使用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();    

选择器和过滤器的哪种组合可以使其工作?

BTW,我需要这个的原因是,当表输出中只有1列时,带有多列sortList的tablesorter会显然会爆炸。

3 个答案:

答案 0 :(得分:1)

如何才能进行良好的检查?

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

答案 1 :(得分:0)

实际修复 tablesorter而不是黑客攻击会不会更容易? (我猜你的意思是http://tablesorter.com/)。

答案 2 :(得分:0)

我设法使用以下选择器执行此操作(也适用于旧版本的TableSorter):

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

我们的想法是,只有当tbody的{​​{1}} tr至少有两个兄弟td时才会找到该表。