1

我在我的网格视图中使用此代码,但它只过滤我的网格视图的一列。我想在此代码中添加其他列,我将其用于循环,但代码无法正常工作。

如何更改此代码以在其他列而不是一列中实现过滤?

有一列过滤代码:

 $(document).ready(function () {
            //
            // Client Side Search (Autocomplete)
            // Get the search Key from the TextBox
            // Iterate through the 1st Column.
            // td:nth-child(1) - Filters only the 1st Column
            // If there is a match show the row [$(this).parent() gives the Row]
            // Else hide the row [$(this).parent() gives the Row]
          { $('#filter').keyup(function (event) {
                var searchKey = $(this).val();

                $("#gvwHuman_ctl00 tr td:nth-child(4)").each(function () {
                    var cellText = $(this).text();
                    if (cellText.indexOf(searchKey) >= 0) {
                        $(this).parent().show();
                    }
                    else {
                        $(this).parent().hide();}

                });

            });

        });

所有列都有代码:

 $(document).ready(function () {
            //
            // Client Side Search (Autocomplete)
            // Get the search Key from the TextBox
            // Iterate through the 1st Column.
            // td:nth-child(1) - Filters only the 1st Column
            // If there is a match show the row [$(this).parent() gives the Row]
            // Else hide the row [$(this).parent() gives the Row]
          { $('#filter').keyup(function (event) {
                var searchKey = $(this).val();
              for(i=0;i<5;++i)
               {    $("#gvwHuman_ctl00 tr td:nth-child(i)").each(function () {
                    var cellText = $(this).text();
                    if (cellText.indexOf(searchKey) >= 0) {
                        $(this).parent().show();
                    }
                    else {
                        $(this).parent().hide();}

                });

            });   }

        });
4

1 回答 1

1

替换这个:

for(i=0; i<5; ++i) {
     $("#gvwHuman_ctl00 tr td:nth-child(i)").each(function () {

有了这个:

for(i=1; i<6; ++i) {
     $("#gvwHuman_ctl00 tr td:nth-child(" + i + ")").each(function () {

i这里实际上是一个 javascript 变量,但它在您的代码中被解释为一个字符串。另外,:nth-child() Selector从 1 开始,所以我们也需要修改 for 循环。

于 2013-05-23T12:25:15.277 回答