过滤后检查元素的Jquery

时间:2014-03-12 08:44:06

标签: jquery html filter selector

我是Jquery的新手,即使在搜索doc和here(stackoverflow)之后,也找不到解决它的方法。

下面是我的表格,其中有3行,每行都有一个复选框(一行中的第一个元素)。

现在将隐藏filtermatch="false" style="display: none;",行。

我还有一个按钮来检查所有内容并取消选中所有内容。如果不应用隐藏,它会工作,但如果某个元素被隐藏,则检查按钮也会检查/取消选中隐藏对象。

我的问题是如何在不修改表格html的任何代码的情况下检查前2行(实际上,该表是由其他人的脚本自动生成的,我只能编写我的脚本来控制显示。)

HTML

<table id="RankTable" border="0" width="800">
<thead>
<tr>
    <th filter="false"><input type="button" id="selectall" value="all"></th>
    <th filter="false">rank</th>
    <th filter-type="ddl">degree</th>
    <th filter-type="ddl">lastposition</th>
    <th filter-type="ddl">workingyear</th>
    <th>realname</th>
    <th>email</th>
    <th>mobile</th>
</tr>
</thead>
<tbody>
<tr id="answer-row" style="">
    <td><input type="checkbox" name="answers" value="140"> </td>
    <td>2 </td>
    <td>bachelor </td>
    <td>项目经理 </td>
    <td>9 </td>
    <td> </td>
    <td><a href="mailto:test06@witz.cn?subject=Invitation for an interview">test06@witz.cn</a></td>
    <td>12316459749816 </td>
</tr>
<tr id="answer-row" style="">
    <td><input type="checkbox" name="answers" value="139"> </td>
    <td>6 </td>
    <td>bachelor </td>
    <td>项目主管 </td>
    <td>9 </td>
    <td> </td>
    <td><a href="mailto:test03@witz.cn?subject=Invitation for an interview">test03@witz.cn</a></td>
    <td>12345646 </td>
</tr>
<tr id="answer-row" filtermatch="false" style="display: none;">
    <td><input type="checkbox" name="answers" value="141"> </td>
    <td>7 </td>
    <td>master </td>
    <td>程序员 </td>
    <td>1 </td>
    <td> </td>
    <td><a href="mailto:test09@witz.cn?subject=Invitation for an interview">test09@witz.cn</a></td>
    <td>56456161 </td>
</tr>
</tbody>
</table>

js script:

    $('#selectall').toggle(function () {
        $("input[name='answers']").attr("checked", 'true');
        $("input[id='selectall']").attr("value", '{% trans "None" %}');
    }, function () {
        $("input[name='answers']").removeAttr("checked");
        $("input[id='selectall']").attr("value", '{% trans "All" %}');
    });

提前感谢任何输入。

1 个答案:

答案 0 :(得分:0)

对那些可见的行<tr>使用公共类,并在其上添加事件。有了这个,你隐藏的<tr>将没有'已选中' - 复选框。

HTML

   <td><input type="checkbox" name="answers"  class="answers" value="139"/> </td>

JS:

    $(".answers").attr("checked", 'true');

show()display()隐藏行时,您可以将此同一类添加回该行 然后复选框也可以检查。

我稍微修改了您的代码: here is demo