根据另一行值

时间:2017-08-25 18:18:00

标签: jquery

我有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'或者'相同'在运行时。

1 个答案:

答案 0 :(得分:0)

您可以使用prev()text()来实现此目的,而不是隐藏整个<td>,例如:

&#13;
&#13;
$('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;
&#13;
&#13;