我有一个关于jQuery
选择器的简单问题。我正在使用tablesorter
并使用选择器来过滤掉没有记录的表。
$('#mytable:has(tbody tr)').tablesorter();
当我在页面上有多个排序表时会出现问题。
var x = 0;
while(x < 10) {
$('#myTable + x:has(tbody tr)').tablesorter();
x+=1;
}
这不起作用,因为x未在选择器中替换。我不能为我的生活看到括号和引号的组合将解决这个问题。
有什么想法吗?
答案 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。在大多数情况下,它比它的价值更麻烦。