Как я могу получить все элементы tr таблицы и отфильтровать их с помощью jquery? - PullRequest
2 голосов
/ 27 июня 2011

Я пытаюсь захватить все строки таблицы в таблице, а затем отфильтровать их, если у них есть класс с именем «hideGroup». Пока это мой код, но он продолжает выводить числа. Как правильно выбрать все строки таблицы в таблице, а затем проверить, есть ли у них группа с именем hideGroup?

 var newRows = $("#search-results-table").find("tr");

        var filteredRows = newRows.filter(function(n) {
            if (n.className != "hideGroup")
                return n;
        });

Ответы [ 6 ]

4 голосов
/ 27 июня 2011

Ваш вопрос не так ясен.

Используйте :not(), если хотите выбрать все строки, которые не имеют класс

$('#search-results-table tr:not(.hideGroup)')

Если вы хотите фильтровать только те с этим классом, используйте:

$('#search-results-table tr.hideGroup');
1 голос
/ 27 июня 2011
$('#search-results-table tr:not(.hideGroup)')

Это вернет все строки таблицы, которые не имеют класса hideGroup

1 голос
/ 27 июня 2011

Чтобы вернуть коллекцию всех строк таблицы с классом «hideGroup», используйте:

$('#search-results-table tr.hideGroup')

чтобы отфильтровать классы, которые не используют класс "hideGroup":

$('#search-results-table tr:not(.hideGroup)')
1 голос
/ 27 июня 2011

$('#search-results-table tr.hideGroup') вернет полный набор.

Edit:

Если это правда, что вам нужны строки без класса hideGroup, несмотря на явное выражение check to see if they have a group called "hideGroup?", вот селектор, который сделает это:

$('#search-results-table tr').not('.hideGroup')

0 голосов
/ 27 июня 2011

При использовании функции с jQuery.filter() первым параметром является индекс, а не элемент.Вы можете исправить это, используя this вместо:

var newRows = $("#search-results-table").find("tr");

var filteredRows = newRows.filter(function(n) {
  return !$(this).hasClass('hideGroup');
});

Однако взгляните на некоторые другие ответы.Они обеспечивают гораздо более короткое решение.

0 голосов
/ 27 июня 2011

Причина, по которой он возвращает числа, в том, что n - это индекс (число), а не элемент.так что n.className всегда будет undefined, что заставит вашу логику внутри этой функции всегда возвращать n.

То, что вы хотите использовать, это либо выбрать результаты, используя

$('#search-results-table tr.hideGroup')

или

$('#search-results-table tr:not(.hideGroup)')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...