Селекторы Jquery - переменные подстановки - PullRequest
1 голос
/ 03 апреля 2012

У меня простой вопрос относительно jQuery селекторов. Я использую tablesorter и использую селектор, чтобы отфильтровать таблицу, в которой нет записей.

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

Проблема возникает, когда на странице есть несколько отсортированных таблиц.

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

Это не работает, потому что x не подставляется в селекторе. Я не могу на всю жизнь понять, какая комбинация скобок и кавычек это исправит.

Есть идеи?

Ответы [ 5 ]

0 голосов
/ 03 апреля 2012

Если возможно, я бы предложил присвоить всем этим таблицам одно и то же имя класса, т.е.

<table class="mySortable" ... >

Тогда запрос мог бы быть намного проще:

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

Не вижу необходимостииспользовать увеличение идентификаторов.В большинстве случаев это больше проблем, чем стоит.

0 голосов
/ 03 апреля 2012

Если вы чувствуете необходимость иметь несколько таблиц для сортировки на вашей странице. Я бы порекомендовал добавить «класс сортировки» к каждой таблице.

Таким образом, вы уменьшите свой tableorter () до:

$('.mySortableTable:has(tbody tr)').tablesorter();
0 голосов
/ 03 апреля 2012

Используйте '#myTable'+x+':has(tbody tr)' в качестве селектора.

0 голосов
/ 03 апреля 2012
$('#myTable' + x + ':has(tbody tr)').tablesorter();

То, как вы это сделали, x было просто обычным символом в строке.Разбейте строку следующим образом: вместо этого вы объединяете строку, значение x, преобразованное в строку, и другую строку.


Я был слишком сосредоточен на решении конкретной проблемы, которую выиметь. реальное решение использовать вместо этого класс на тальбах, например .SortableTable, а затем просто

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

, как предлагали другие, - также покончить с ручным циклом.

0 голосов
/ 03 апреля 2012
$('#myTable + ' + x + ':has(tbody tr)').tablesorter();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...