如果a包含文字“ 0”,则不显示任何内容

时间:2018-10-02 08:03:10

标签: javascript jquery html-table contains

我尝试使用jQuery将td包含文本0时消失。我试过了,但是没用:

$(".detail-parameters tr:contains('0')").css("display", "none");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="detail-parameters">
  <tbody>
    <tr>
      <th>some text</th>
      <td>0</td>
    </tr>
    <tr>
      <th>some text</th>
      <td>1</td>
    </tr>
  </tbody>
</table>

任何想法为何?

2 个答案:

答案 0 :(得分:2)

您的代码可以工作,但是如果td的文本中包含0110,则代码会将其隐藏起来是不正确的。因此,您应该检查.filter()中元素的文本,而不要使用:contain()

$(".detail-parameters tr").filter(function(){
  return $(this).find("td").text() == 0;
}).css("display", "none");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="detail-parameters">
  <tbody>
    <tr>
      <th>some text</th>
      <td>0</td>
    </tr>
    <tr>
      <th>some text</th>
      <td>1</td>
    </tr>
    <tr>
      <th>some text</th>
      <td>01</td>
    </tr>
  </tbody>
</table>

答案 1 :(得分:0)

您正在使用tr而不是td尝试

$(document).ready(function(){
  $(".detail-parameters td:contains('0')").css("display", "none");
});

但是您的代码也会隐藏10或01。