如何为jquery在表中进行多次搜索

how to make mutiple search in table for jquery

本文关键字:搜索 jquery      更新时间:2024-03-13

我希望jsfiddle中的代码是多重搜索。这是我的代码:当我搜索55时。它起作用了。但是,如果我搜索"55 553",是否可以突出显示两行?

$('#search').keyup(function(){
    var needle = $(this).val();
    $('.highlight').removeClass('highlight');
    $('td.hidden:contains("' + needle + '")')
        .filter(function(){
            return $(this).text() == needle;
        })
        .closest('tr')
        .addClass('highlight');
});

http://jsfiddle.net/davidThomas/AsSDQ/1/

我不想突出显示行,而是想隐藏不属于搜索的表行

   $('#search').keyup(
function () {
    var needles = $(this).val().split(" ");
   $("tr").hide();
        $('.highlight').removeClass('highlight');
    for (i = 0; i < needles.length; i++) {
        $('td.hidden:contains("' + needles[i] + '")')
        .filter(
            function () {
                return $(this).text() == needles[i];
            })
        .closest('tr')
        .addClass('highlight');
    }
    $('.highlight').show();
    if($(this).val()=="")
     {
        $("tr").show()
     }
});

这个代码会起作用。。

演示

这应该是您正在寻找的答案

JS Fiddle这就是答案,我真的不确定如何在这里发布答案,我试过了,但没有真正奏效。

$('#search').keyup(
    function(){
       var needle = $(this).val();
       var splitNeedle = needle.split(" ");
       $('.test').html(splitNeedle.length)
       $('.highlight').removeClass('highlight');
       for(var i=0;i<splitNeedle.length;i++){
       $('td.hidden:contains("' + splitNeedle[i] + '")')
            .filter(
                function(){
                    return $(this).text() == splitNeedle[i];
                })
            .closest('tr')
            .addClass('highlight');
        }
});