0

我遇到了一些麻烦。我有一个由 PHP 创建的表,它从 Excel 文件中提取数据。我想要做的是让用户能够在某些列(用户指定列)中搜索一个值(也是用户指定的),如果指定的值存在,则突出显示整行。

我一直在做功课,还没有找到合适的soulute。这是与我的噩梦相关的代码(:

 $(document).ready(function(){
    $("#search").click(function(){
        var searchText;

        if(col == 0 || col == 1 || col ==3){
            searchText = $("#searchText").val()
        }
        else if(col == 6){
            searchText = $("#maxPets option:selected").text();
        }
        else if(col == 7){
            searchText = $("#maxWeight option:selected").text();
        }

        $("myTable tr td:nth-child(" + col +")").each(function () {

            if ($(this).val.indexOf(searchText) !=-1) {
                tr.addClass('result');  }
            else {
                tr.removeClass('result');
                }

        });


    });
});
4

2 回答 2

1
 $(document).ready(function(){
    $("#search").click(function(){
        var searchText;
        $("tr").removeClass("result");
        if (col == 0 || col == 1 || col == 3) {
            searchText = $("#searchText").val();
        }
        else if(col == 6){
            searchText = $("#maxPets option:selected").text();
        }
        else if(col == 7){
            searchText = $("#maxWeight option:selected").text();
        }
        $("#myTable tr").filter(function() {
            return $("td:eq(" + col + ")", this).text() == searchText;
        }).closest("tr").addClass("result");
    });
});

jsFiddle DEMO -- 更新了部分搜索

我还是不知道你从哪里来col。我想是一个下拉菜单。

于 2013-07-26T19:04:04.690 回答
0

改变:

        if ($(this).val.indexOf(searchText) !=-1) {
            tr.addClass('result');  }
        else {
            tr.removeClass('result');
            }

至:

        if ($(this).text().indexOf(searchText) !=-1) {
            $(this).closest("tr").addClass('result');  }
        else {
            $(this).closest("tr").removeClass('result');
        }

val是一个jQuery方法,它是一个函数,它不是你可以搜索的字符串。对于您可能想要的东西(读取表字段的内容),这是错误的方法text()-val()用于用户输入的值。

而且没有变量tr——你想添加/删除元素包含行的类。

这可以进一步简化为:

$(this).closest("tr").toggleClass("result", $(this).text().indexOf(searchText) !=-1);
于 2013-07-26T19:01:56.317 回答