Jquery选择器 - 替换变量

时间:2012-04-03 09:08:32

标签: jquery jquery-selectors

我有一个关于jQuery选择器的简单问题。我正在使用tablesorter并使用选择器来过滤掉没有记录的表。

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

当我在页面上有多个排序表时会出现问题。

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

这不起作用,因为x未在选择器中替换。我不能为我的生活看到括号和引号的组合将解决这个问题。

有什么想法吗?

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用'#myTable'+x+':has(tbody tr)'作为选择器。

答案 2 :(得分:0)

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

你拥有它的方式x只是字符串中的普通字符。像这样打破字符串,这样你就可以组合一个字符串,x转换为字符串的值,以及另一个字符串。


我过于专注于回答你遇到的具体问题。 真正的解决方案,而不是像.SortableTable那样使用talbe上的类,然后简单地

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

,正如其他人所建议的那样 - 也取消了手动循环。

答案 3 :(得分:0)

如果您觉得需要在页面上对多个表进行排序。我建议在每个表中添加一个“排序类”。

因此,您将把tablesorter()缩减为:

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

答案 4 :(得分:0)

如果可能的话,我建议给所有这些表提供相同的类名,即

<table class="mySortable" ... >

然后查询可以更简单:

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

我认为没有必要使用增加的Id。在大多数情况下,它比它的价值更麻烦。