如何使用selectalljavascript仅选择已筛选的行

本文关键字:筛选 选择 何使用 selectalljavascript | 更新日期: 2023-09-27 18:29:10

我有一个用于筛选gridview上的文本框的脚本和用于每行上的复选框的脚本。当我过滤网格中的某个内容时,我会得到一些经过过滤的行。。我想使用selectall脚本来选择那些经过筛选的行。但它选择了网格中的所有结果。

选择复选框脚本:

      $("#<%=gvCheckDetails.ClientID%> input:checkbox").live("click", function(event) {
            var tbl = $("#<%=gvCheckDetails.ClientID%>");
            var checkbox = $(this);
            var checkState = checkbox.is(":checked");
            var ancestorName = checkbox.parent().parent()[0].nodeName; // tr or th?                
            // if it's a header, we'll work with all rows (select on or off)
            if (ancestorName.toLowerCase() === "th") {
                $(tbl[0].config.rowsCopy).each(function() {
                    if (checkState)
                        $(this).find("input:checkbox").attr('checked', true);
                    else
                        $(this).find("input:checkbox").removeAttr('checked');
                });
            }
        });

有人能帮我吗?我如何修改上面的脚本,在选中selectall时只选择筛选的值(搜索文本框使用aspx中的jscript动态筛选网格行)

如何使用selectalljavascript仅选择已筛选的行

:visible选择器通常会完成此操作。它将只过滤可见的元素,包括DOM中的父元素。

$(tbl[0].config.rowsCopy).filter(':visible').each(function() {

根据Augusto Men解决答案:

刚刚取代

$(this).find("input:checkbox").attr('checked', true);

带有

$(this).filter(':visible').find("input:checkbox").attr('checked', true);

所以现在复选框检查只过滤和应用可见的复选框。

非常感谢Augusto