切换表行以在jquery中隐藏/显示

时间:2016-02-05 13:02:40

标签: jquery

我有一个表格,我希望有一个onClick按钮,它将运行toggle()函数

目前,我可以隐藏M值,但不能将它们带回来,

比方说,这就是表格的外观

+-------+--------+
| Name  | Gender |
+-------+--------+
| James | M      |
+-------+--------+
| Gemma | F      |
+-------+--------+
| John  | F      |
+-------+--------+

继承人切换功能

function toggle() {
    var searchString = 'M';
    $("#t01 tr td:contains('" + searchString  + "')").each(function() {
        if ($(this).text() == searchString) {
            $(this).parent().hide();
        }  
    });
}

2 个答案:

答案 0 :(得分:2)

tr开始并在内部检查会更容易,如下所示: -

function toggle(gender) {
  $('#t01 tbody tr').each(function() {
    $(this).toggle($('td:eq(1):contains(' + gender + ')', this).length > 0);
  })
}

function show() {
  $('#t01 tbody tr').show();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="t01">
  <thead>
    <tr>
      <th>Name</th>
      <th>Gender</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>James</td>
      <td>M</td>
    </tr>
    <tr>
      <td>Gemma</td>
      <td>F</td>
    </tr>
    <tr>
      <td>John</td>
      <td>F</td>
    </tr>
  </tbody>
</table>

<button onclick="toggle('M')">Male</button>
<button onclick="toggle('F')">Female</button>
<button onclick="show()">All</button>

答案 1 :(得分:1)

如果您的代码正常工作以隐藏行,那么您可以简单地用toggle()替换hide()来显示/隐藏其余部分,或者您可以简化BG101所说的代码。

function toggle() {
    var searchString = 'M';
    $("#t01 tr td:contains('" + searchString  + "')").each(function() {
        if ($(this).text() == searchString) {
            $(this).parent().toggle();
        }  
    });
}