我有5列表,并且如果第6行中的相应列包含" No"则要删除任何列的第5行数据。或"相同"。我认为Jquery会这样做。请帮帮我,我不是Jquery的专业人士。 这是我尝试过的代码,但它无效。
$(document).ready(function() {
$("tr td:contains('Contract')").each(function() {
$("tr:nth-child(5)").siblings('td').css("display", "none");
});
});
表格如下:
Product | Apple | Lenovo | HTC | Samsung | LG
Camera | 20MP | 12MP | 22MP | 20MP | 20MP
RAM | 4GB | 4GB | 4GB | 3GB | 2GB
Storage | 32GB | 32GB | 32GB | 32GB | 32GB
Expandable | No | Yes | No | Yes | Yes
Contract | No | Yes | Same | Yes | Yes
但我希望输出如下:
Product | Apple | Lenovo | HTC | Samsung | LG
Camera | 20MP | 12MP | 22MP | 20MP | 20MP
RAM | 4GB | 4GB | 4GB | 3GB | 2GB
Storage | 32GB | 32GB | 32GB | 32GB | 32GB
Expandable | | Yes | | Yes | Yes
Contract | No | Yes | Same | Yes | Yes
这不是常规的HTML表格。它是在Survey分析软件中生成的。它生成了8个页面中的8个表,所以我认为jQuery将删除第5行数据,如果其相应的第6行数据包含' No'或者'相同'在运行时。
答案 0 :(得分:0)
您可以使用prev()
和text()
来实现此目的,而不是隐藏整个<td>
,例如:
$('table tbody tr:nth-child(5)').find('td:contains(No),td:contains(Same)').each(function() {
$(this).parent('tr').prev().children('td').eq( $(this).index() ).text('');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1" width="100%">
<thead>
<tr>
<th>Product</th>
<th>Apple</th>
<th>Lenovo</th>
<th>HTC</th>
<th>Samsung</th>
<th>LG</th>
</tr>
</thead>
<tbody>
<tr>
<td>Camera</td>
<td>20MP</td>
<td>12MP</td>
<td>22MP</td>
<td>20MP</td>
<td>20MP</td>
</tr>
<tr>
<td>RAM</td>
<td>4GB</td>
<td>4GB</td>
<td>4GB</td>
<td>3GB</td>
<td>2GB</td>
</tr>
<tr>
<td>Storage</td>
<td>32GB</td>
<td>32GB</td>
<td>32GB</td>
<td>32GB</td>
<td>32GB</td>
</tr>
<tr>
<td>Expandable</td>
<td>No</td>
<td>Yes</td>
<td>No</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>Contract</td>
<td>No</td>
<td>Yes</td>
<td>Same</td>
<td>Yes</td>
<td>Yes</td>
</tr>
</tbody>
</table>
&#13;