2014-06-18 2 views
1

Как указано в заголовке, я пытаюсь удалить всю строку таблицы, если происходит совпадение. У меня есть следующий:Если строка содержит строку, удалите всю строку

$('tr > td:nth-child(3)').text().match(/\$/g); 

Таким образом, в этом случае, если третий столбец содержит «$», я хотел бы, чтобы вся строка будет удалена. Я не уверен, как это сделать, поскольку приведенное выше возвращает массив с длиной числа совпадений, и каждый индекс является совпадающей строкой.

Псевдо:

if($('tr > td:nth-child(3)').text().match(/\$/g)){ 
    $(this).remove(); 
} 

Я программирование всего дня, так что мой мозг жарят, я уверен, что есть что-то очень просто, я с видом. Любая помощь приветствуется.

+0

Возможный дубликат [Regex соответствия строк таблицы в HTML] (https: // StackOverflow. com/вопросы/7289181/regex-matching-table-rows-in-html) –

ответ

3

Только небольшой нюанс, что Null предложил будет удалить всю строку:

$('tr > td:nth-child(3):contains("$")').parent().remove(); 

jsFiddle

3

Я считаю, что вы могли бы использовать :contains, в данном случае:

$('tr > td:nth-child(3):contains("$")').remove(); 
+0

хороший звонок, даже не подумав содержит. Однако это удаляет столбец, а не строку. Это должно быть '$ ('tr> td: nth-child (3): contains (" $ ")'). Parent ('tr'). Remove();' –

+1

@pedrumgolriz Извинения, я неправильно прочитал. Надеюсь, что это помогло – lifetimes

0

Метод match возвращает массив. Вместо этого вы хотите использовать метод test.

$('tr').filter(function() { 
    return /\$/.test($(this).find('td:nth-child(3)').text()); 
}) 
.remove(); 
Смежные вопросы