如果列包含单词,则过滤掉表行的jquery代码

0s0u357o  于 2023-02-15  发布在  jQuery
关注(0)|答案(2)|浏览(107)

我有一些代码,它接受一个搜索查询(使用jquery),并使用该查询过滤出表中的行。因此,如果我键入“leather ...”它会查找包含“leather”的行,并隐藏不包含该单词的行。我遇到的问题是,我只想搜索第一列(但它会搜索该行中的每一列)。以下是当前代码的代码附录
https://codepen.io/jabbamonkey/pen/yLxBOJR
(the当我搜索“皮革”时,包含“隐藏”的行不应该出现...但它出现了,因为“皮革“工人在第5列...)
下面是jquery的代码:

$(document).ready(function(){
        $('.search').on('keyup',function(){
            var searchTerm = $(this).val().toLowerCase();
            $('#craftTbl div.contentrow').each(function(){
                var lineStr = $(this).text().toLowerCase();
                if(lineStr.indexOf(searchTerm) === -1){
                    $(this).hide();
                    $(".descexpand").hide();
                    $(".rowCat").hide();
                    $(".rowSec").hide();
                }else{
                    $(this).show();
                }
            });
        });
    });

我似乎无法让jquery代码只搜索“col1”,并在搜索查询从该行丢失时隐藏整行。我不太了解javascript(一点也不),所以任何帮助和指导都很感激...
注意:.rowCat、.rowSec和descexpand指的是从搜索中完全隐藏的整行(并且不会显示在codepen中)。

jjhzyzn0

jjhzyzn01#

对于每一行,您可以在$this的第一个子代中搜索,方法是将

var lineStr = $(this).text().toLowerCase();

var lineStr = $(this).children(":first").text().toLowerCase();
iszxjhcz

iszxjhcz2#

我认为您可以简单地编辑lineStr赋值,以便仅从.col1元素获取值:

var lineStr = $(this).find('.col1').text().toLowerCase();

下面是CodePen的fork示例。

相关问题