Я удивлен, что никто не упомянул метод filter ... Из документов:
фильтр (expr)
Удаляет все элементы из набора
совпадающие элементы, которые не соответствуют
указанное выражение (я). Этот метод
используется для сужения результатов
поиск ...
Так, может быть, что-то вроде этого?
$("table#traffic tr")
.filter(':has(td:contains('" + selected_text + "'))')
.remove();
Конечно, вы все равно можете использовать комбинацию not
для достижения того же выбора (есть много других способов снять шкуру с этой кошки). Я просто подумал, что упомяну функцию filter
, потому что для этого она есть.
Наконец, я также хочу отметить, что ни один из подходов, на которые дан ответ, пока не решает очень вероятную ситуацию, когда вы в конечном итоге удалите строки, которые вам не нужны! Например, если строка имеет несколько ячеек, вы не хотите, чтобы только одна из тех ячеек в строке, не содержащих ваш текст, вызывала удаление всей строки! Обратите внимание, что в моем решении выше фильтрация выполняется на уровне строк, а не на уровне ячеек. (Я не проверял это, поэтому, пожалуйста, не прыгайте на меня, если это не работает точно как есть!)
Удачи!
-Mike