Javascript jQuery搜索表中的元素

Javascript jQuery搜索表中的元素,javascript,jquery,Javascript,Jquery,我是jQuery新手,需要帮助在表中搜索用户类型的元素。我是用JS编写的,但在使用jQuery编写时遇到了一个问题 找到元素后,表中具有相同类名的其他行应可见,而其他行应隐藏: $(document).ready(function() { search(".site-table", "#recordInput"); console.log("Document is ready"); } ); function search(search_table, searc

我是jQuery新手,需要帮助在表中搜索用户类型的元素。我是用JS编写的,但在使用jQuery编写时遇到了一个问题

找到元素后,表中具有相同类名的其他行应可见,而其他行应隐藏:

$(document).ready(function()
    {
    search(".site-table", "#recordInput");
    console.log("Document is ready");
    }
);

function search(search_table, search_field)
{

    // Searching for an item specified in search_field within a table


    $(search_field).on("keyup", function() 
    {
        var target_text = $(this).val().toLowerCase();

        //Hide everything first
        $(search_table).find('tr').addClass(".hidden");

        $(search_table).find('tr').each(function(index, element){
            // For each row, find out if the row has the target_text in it
            $element:contains($target_text).each(function(index, element){
                $(element).removeClass(".hidden");
            });

            // for each row with the target text in it, find other rows with this rows class name in their class name and show them.  Any other row should be hidden



    });
感谢您的帮助

编辑1:

下面是注释后的编辑代码。我仍然无法让它工作:

$(document).ready(function()
{
search(".site-table", "#recordInput");
console.log("Document is ready");
}
))


这些方法都不管用!在每种方法中我做错了什么?

您的问题是关于使用
索引的问题。必须放在括号之间的仅是搜索文本,
-1
必须为空。请参见此示例:

var-its_-ok=$('div').first().html().indexOf('b')>-1
log('first one:',它的'u ok')
变量its_not_ok=$('div').first().html().indexOf('b'>-1)
console.log('secondone:',它不正常)

abcd

$element:contains
冒号在那里不是有效字符。另外,
$element
未定义
$(element).removeClass(“.hidden”)移除类接受类,而不是选择器。删除句号。与
.addClass(“.hidden”)相同
,删除也未定义的句点。$('list')。查找('a.box');您可以选择表Id,这就是范围,然后您可以搜索您想要的元素。您可以解释或给出这些关联类如何工作的示例吗?例如,如果一行有多个类,您如何知道在其他行中查找哪个类?还是全部?如果您依赖于每一行只有一个类,那么应该使用类似于
data
属性的属性,否则添加类将导致功能中断。考虑在你的问题中包括一些HTML。
function search($search_table, $search_field)
{
    console.log("Starting to search...");

    $($search_field).on("keyup", function() 
    {
        // Heighlight the search field 
        $(this).css('border', '1px solid red');

        $search_text = $(this).val().toLowerCase();

        // 1st method:
        $search_result = $($search_table).find('tbody tr').text().toLowerCase().indexOf($search_text > -1);  // Does not work!  Nothing is found when there is a match
        console.log("Search Result: ", $search_result);


        // 2nd method:
        $($search_table).find('tr').each(function(index, element){
            // For each row, toggle the hidden class if the row contains the search text
            $(this).toggleClass('hidden', $(this).text().toLowerCase().indexOf($search_text > -1));
        });

        // 3rd method:
        var found = $($search_table).find('tbody tr').filter(function() {
            return $(this).text().toLowerCase() == $search_text;  
        });

        console.log("found: ", found);    
    });
}