2012-04-03 8 views
1

私はjQueryセレクタに関する簡単な質問があります。私はtablesorterを使用しており、セレクタを使用してレコードのないテーブルをフィルタリングします。Jquery Selectors - 代替変数

$('#mytable:has(tbody tr)').tablesorter(); 

問題は、ページに複数のソートテーブルがある場合に発生します。

var x = 0; 
while(x < 10) { 
    $('#myTable + x:has(tbody tr)').tablesorter(); 
    x+=1; 
} 

xがセレクタで置換されていないため、これは機能しません。私は私の人生のためにどのような括弧と引用符の組み合わせがこれを解決するか見ることができません。

アイデア?

答えて

0

セレクタとして'#myTable'+x+':has(tbody tr)'を使用してください。

0
$('#myTable + ' + x + ':has(tbody tr)').tablesorter(); 
+0

ほとんど右ですが、余分な「+」があります。とにかくありがとう –

0
$('#myTable' + x + ':has(tbody tr)').tablesorter(); 

xは、文字列のちょうど普通の文字だった。このような文字列を壊して、代わりに文字列、文字列に変換されたxの値、および別の文字列を結合するようにします。


私はあまりにも特定の問題に答えることに集中していました。同様に、マニュアルループを離れてやって - 他の人が示唆しているよう本当ソリューションは、単に

$('.SortableTalbe:has(tbody tr)').tablesorter(); 

.SortableTableのように、代わりにtalbes上のクラスを使用するとします。

0

ページに複数の表を並べる必要があると感じたら、各テーブルに「ソートクラス」を追加することをお勧めします。

だから、あなたは(あなたのtablesorterを削減する)へ:

$('.mySortableTable:has(tbody tr)').tablesorter(); 
0

可能ならば、私はその後、クエリは非常に可能性がすなわち

<table class="mySortable" ... > 

、これらすべてのテーブルに同じクラス名を与えることを示唆していますより簡単:

私はIDを増やす必要はありません。ほとんどの場合、それは価値があるよりもトラブルです。

+0

良いアイデアは、この状況では不可能です。テーブルが生成され、クラスオプションはありません。 –