我有一个具有以下结构的表:
| abc|1 | def | ghi |
| erg|1 | asd | dfg |
| sdf|2 | ghj | erd |
| tsd|2 | sdf | hgj |
我现在想要隐藏在tr
中可以找到后缀|2
的所有td
。所以结果应该是:
| abc|1 | def | ghi |
| erg|1 | asd | dfg |
这是我的方法:
$('table tr').each(function() {
$(this).find("\\|2").hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>bla|1</td>
<td>sdf</td>
<td>hfgh</td>
</tr>
<tr>
<td>bla|1</td>
<td>3sf</td>
<td>gdfg</td>
</tr>
<tr>
<td>bla|1</td>
<td>sdf</td>
<td>jfhj</td>
</tr>
<tr>
<td>bla|2</td>
<td>sdf</td>
<td>hfgh</td>
</tr>
<tr>
<td>bla|2</td>
<td>3sf</td>
<td>gdfg</td>
</tr>
<tr>
<td>bla|2</td>
<td>sdf</td>
<td>jfhj</td>
</tr>
</table>
但这不会产生任何结果。
答案 0 :(得分:1)
您可以使用:contains
选择器。
col1|col2|col3|col4
ghf|456|test|account
ijk|789|travel|destination
$('table tr:contains(|2)').hide();
答案 1 :(得分:0)
这不是.find()
的工作方式。试试这个:
$('table tr').each(function() {
if ($(this).children('td').eq(0).text().match("\\|2")) {
$(this).hide();
}
});
答案 2 :(得分:0)
您可以使用.endsWith
$('table tr').each(function() {
var $this = $(this);
if ($this.find('td').eq(0).text().endsWith("|2")) {
$this.hide();
}
});
这里实际发生的是我们发现每一行第一列的内容是否以|2
答案 3 :(得分:0)
答案 4 :(得分:0)
只需使用以下代码
即可$('tr:contains(|2)').hide();
更新
要限制只检入第一个td,
$('tr td:first-child:contains(|2)').parent('tr').hide();