Подтвердить что ты не робот

JQuery - найти строку таблицы, содержащую ячейку таблицы, содержащую определенный текст

Мне нужно получить элемент tr, который содержит элемент td, который содержит определенный текст. td будет содержать этот текст и только тот текст (так что мне нужна логика text = 'foo' not text contains 'foo').

Итак, мне нужен эквивалент следующего "псевдо jQuery":

var tableRow = $(table td[text = 'foo']).parent('tr');

Может ли кто-нибудь указать правильный синтаксис?

4b9b3361

Ответ 1

Вы можете использовать filter() для этого:

var tableRow = $("td").filter(function() {
    return $(this).text() == "foo";
}).closest("tr");

Ответ 2

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

$("tr:contains(needle)");//где игла - это текст, который вы ищете.

Например, если вы ищете текстовое поле, это будет:

$("tr:contains('box')");

Это вернет все элементы с этим текстом. Дополнительные критерии могут быть использованы для его сужения, если он возвращает несколько элементов

Ответ 3

$(function(){
    var search = 'foo';
    $("table tr td").filter(function() {
        return $(this).text() == search;
    }).parent('tr').css('color','red');
});

Повернет текст красным для строк, у которых есть ячейка, текст которой "foo".

Ответ 4

Это будет поиск текста во всех td внутри каждого tr и show/hide tr на основе текста поиска

 $.each($(".table tbody").find("tr"), function () {                              

                if ($(this).text().toLowerCase().replace(/\s+/g, '').indexOf(searchText.replace(/\s+/g, '').toLowerCase()) == -1)
                    $(this).hide();
                else
                    $(this).show();
 });

Ответ 5

   <input type="text" id="text" name="search">
<table id="table_data">
        <tr class="listR"><td>PHP</td></tr>
        <tr class="listR"><td>MySql</td></tr>
        <tr class="listR"><td>AJAX</td></tr>
        <tr class="listR"><td>jQuery</td></tr>
        <tr class="listR"><td>JavaScript</td></tr>
        <tr class="listR"><td>HTML</td></tr>
        <tr class="listR"><td>CSS</td></tr>
        <tr class="listR"><td>CSS3</td></tr>
</table>

$("#textbox").on('keyup',function(){
        var f = $(this).val();
      $("#table_data tr.listR").each(function(){
            if ($(this).text().search(new RegExp(f, "i")) < 0) {
                $(this).fadeOut();
             } else {
                 $(this).show();
            }
        });
    });

Демо Вы можете выполнить метод search() с использованием текста соответствия RegExp