jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 通过表行进行实时搜索大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过表行进行实时搜索,使用jQuery,“活”字是关键,因为我想在文本输入中键入关键字,在同一个网站上,我希望jQuery自动排序(或删除那些与搜索查询不符的列表)行。

这是我的HTML:

<table>
    <tr><th>Unique ID</th><th>Random ID</th></tr>
    <tr><td>214215</td><td>442</td></tr>
    <tr><td>1252512</td><td>556</td></tr>
    <tr><td>2114</td><td>4666</td></tr>
    <tr><td>3245466</td><td>334</td></tr>
    <tr><td>24111</td><td>54364</td></tr>
</table>

如果我会fe按唯一ID搜索,它应该显示唯一的行从唯一ID的特定数字开始。铁。如果我在搜索输入框中输入’2’,则应该保留以下行,因为它们以2:

<table>
    <tr><th>Unique ID</th><th>Random ID</th></tr>
    <tr><td>214215</td><td>442</td></tr>
    <tr><td>2114</td><td>4666</td></tr>
    <tr><td>24111</td><td>54364</td></tr>
</table>

如果我输入24,那么应该只有一行可见,从24开始:

<table>
    <tr><th>Unique ID</th><th>Random ID</th></tr>
    <tr><td>24111</td><td>54364</td></tr>
</table>

如果你们可以给我一些关于如何做这样的事情的技巧,我将非常感激。

谢谢。

解决方法

我不知道这是多么有效,但这是有效的:
$("#search").on("keyup",function() {
    var value = $(this).val();

    $("table tr").each(function(indeX) {
        if (index != 0) {

            $row = $(this);

            var id = $row.find("td:first").text();

            if (id.indexOf(value) != 0) {
                $(this).hide();
            }
            else {
                $(this).show();
            }
        }
    });
});

DEMO – 在桌上实时搜索

添加了一些简单的突出显示逻辑,您或将来的用户可能会找到方便

添加一些基本突出显示方法之一是在匹配的文本周围包装em标签,并使用CSS将黄色背景应用于匹配的文本,即:(em {BACkground-color:yellow}),类似于:

// removes highlighTing by replacing each em tag within the specified elements with it's content
function removeHighlighTing(highlightedElements){
    highlightedElements.each(function(){
        var element = $(this);
        element.replaceWith(element.html());
    })
}

// add highlighTing by wrapping the matched text into an em tag,replacing the current elements,html value with it
function addHighlighTing(element,textToHighlight){
    var text = element.text();
    var highlightedText = '<em>' + textToHighlight + '</em>';
    var newText = text.replace(textToHighlight,highlightedText);

    element.html(newText);
}

$("#search").on("keyup",function() {
    var value = $(this).val();

    // remove all highlighted text passing all em tags
    removeHighlighTing($("table tr em"));

    $("table tr").each(function(indeX) {
        if (index !== 0) {
            $row = $(this);

            var $tdElement = $row.find("td:first");
            var id = $tdElement.text();
            var matchedIndex = id.indexOf(value);

            if (matchedIndex != 0) {
                $row.hide();
            }
            else {
                //highlight matching text,passing element and matched text
                addHighlighTing($tdElement,value);
                $row.show();
            }
        }
    });
});

Demo – 应用一些简单的亮点

大佬总结

以上是大佬教程为你收集整理的jquery – 通过表行进行实时搜索全部内容,希望文章能够帮你解决jquery – 通过表行进行实时搜索所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。