javascript - 如何使用 jquery 隐藏表行具有未经检查的输入

标签 javascript jquery checkbox input html-table

我正在尝试做一个过滤器,当按下一个按钮时,它将只显示表中有checked输入的行。

<table class="table">
    <tr>
        <th>Name</th>
        <th>InUse</th>
        <th></th>
    </tr>
    <tr>
        <td>foo 1</td>
        <td>
            <input checked="checked" class="check-box" disabled="disabled" type="checkbox" />
        </td>
        <td>
            <a href="/AdditivesNames/Edit/5">Edit</a> |
            <a href="/AdditivesNames/Details/5">Details</a> |
            <a href="/AdditivesNames/Delete/5">Delete</a>
        </td>
    </tr>
    <tr>
        <td>foo 2</td>
        <td>
            <input checked="checked" class="check-box" disabled="disabled" type="checkbox" />
        </td>
        <td>
            <a href="/AdditivesNames/Edit/3">Edit</a> |
            <a href="/AdditivesNames/Details/3">Details</a> |
            <a href="/AdditivesNames/Delete/3">Delete</a>
        </td>
    <tr/>
    <!-- not checked -->
    <tr>
        <td>foo 3</td>
        <td>
            <input class="check-box" disabled="disabled" type="checkbox" />
        </td>
        <td>
            <a href="/AdditivesNames/Edit/5">Edit</a> |
            <a href="/AdditivesNames/Details/5">Details</a> |
            <a href="/AdditivesNames/Delete/5">Delete</a>
        </td>
    </tr>
</table>

最佳答案

您可以使用 :has选择器或 .has()检查父元素是否存在的方法。

$("button").click(function(){
    $("table tr").has(".check-box:not(:checked)").hide();
});
table, tr, td {
    border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr>
        <th>Name</th>
        <th>InUse</th>
    </tr>
    <tr>
        <td>foo 1</td>
        <td>
            <input class="check-box" type="checkbox" checked disabled  />
        </td>
    </tr>
    <tr>
        <td>foo 2</td>                  
        <td>
            <input class="check-box" type="checkbox" disabled  />
        </td>
    </tr>
    <tr>
        <td>foo 3</td>                  
        <td>
            <input class="check-box" type="checkbox" checked disabled  />
        </td>
    </tr>
    <tr>
        <td>foo 4</td>                  
        <td>
            <input class="check-box" type="checkbox" disabled  />
        </td>
    </tr>
</table>
<button>Only checked</button>

您可以在 demo 中的全部 html 上测试代码

关于javascript - 如何使用 jquery 隐藏表行具有未经检查的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327429/

相关文章:

javascript - 将列表显示为 <选项值 ="">

javascript - 缩放、拖动和旋转时的图像定位

当窗口不是全宽时Javascript显示光标

html - 在 ionic 框架中使用复选框时如何从 ionic 标签中删除空间

javascript - 如何对多个表单元素使用一个单独的 js 函数

MDN 中的 JavaScript 接口(interface)

jquery - 条件 JQuery css 只能工作一次

Javascript 不会对具有变量 id 的复选框使用react以显示隐藏的文本框

javascript - 为全选/取消全选时的每个复选框调用 jQuery 函数

javascript - JQuery Append to SELECT 不起作用?