JQuery И селектор - PullRequest
       26

JQuery И селектор

3 голосов
/ 04 июля 2011

У меня есть сетка данных (asp.net) на моей странице.Я хотел бы выбрать все строки, которые имеют слово «foo» в первом столбце И слово «bar» во втором столбце.

Я знаю, как это сделать только для первого столбца.

jQuery('[id$="datagrid1"] tr td:contains(foo)')

Может кто-нибудь сообщить мне, как включить условие для второго столбца со словом 'bar'?

Редактировать: Кроме того, как мне сопоставитьслово точно?Как селектор contains соответствует, когда ячейка содержит слово.

Ответы [ 3 ]

6 голосов
/ 04 июля 2011

Селекторы только дошли до вас.Используйте .filter() для максимальной гибкости:

jQuery('[id$="datagrid1"] tr').filter(function () {
    return $('td:eq(0)', this).text() == 'foo' &&
        $('td:eq(1)', this).text() == 'bar';
});
  • Функции .filter() перебирают каждый элемент и ожидают, что вы вернете true или false, чтобы указать, следует ли сохранить элемент (совпадений).
  • Селектор :eq() позволяет выбрать индекс в сопоставленном наборе.
3 голосов
/ 04 июля 2011

Как это:

jQuery('[id$="datagrid1"] tr').filter(function(){
   var $tds = $(this).find("td");
   return ($tds.eq(0).text()=="foo" && $tds.eq(1).text()=="bar");
});

Тот же код более «объяснил»

$trs = jQuery('[id$="datagrid1"] tr').filter(function(){
   var $first_td = $(this).find("td").eq(0);  //First column
   var $second_td = $(this).find("td").eq(1); //Second column
   return ($first_td.text()=="foo" && $second_td.text()=="bar"); //Condition to filter
});

Возвращает набор <tr>, который соответствует желаемому условию.

Надеюсь, это поможет. Приветствия

2 голосов
/ 04 июля 2011

Вы можете использовать селектор следующего соседа , предполагая, что второй столбец <td> примыкает к первому столбцу <td>

...