Одно из возможных решений:
$('td').filter(function() {
return $(this).text().indexOf('Foo') === 0;
}).closest('tr');
Вы должны использовать .filter()
для работы с текстом элемента (вы не можете сделать это с помощью селектора, по крайней мере, не так, как вы хотите) и .closest()
должно быть самоочевидно.
Редактировать: Но это может выбрать элементы <tr>
несколько раз. Я на самом деле не знаю, как jQuery справляется с этим. Другое решение состоит в том, чтобы использовать два вложенных filter
с (на tr
и на td
, но почему-то это неэффективно).
Edit2: Начиная с версии 1.4.4, jQuery кажется достаточно умным, чтобы иметь дело с несколькими вхождениями одного и того же элемента (то есть он работает как набор). DEMO здесь (если вы перейдете на версию 1.4.2, вы увидите, что первый ряд выбирается дважды).