jQuery 實現前端模糊匹配與首字母搜索


實現效果

源碼

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>搜索框測試Demo</title>
    <style>
        .searchDiv {width: 400px;height: 400px;margin: 150px auto;}
        .on {font-size: 12px;font-weight: 700;color: red;}
        /* 隱藏 拼音 標簽 */
        p {display: none;}
    </style>
    <script type="text/javascript" src="../asset/js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        $(function(){
            //鍵盤按鍵彈起時執行
            $('#index').keyup(function(){
                var index = $.trim($('#index').val().toString()); // 去掉兩頭空格
                if(index == ''){ // 如果搜索框輸入為空
                    $('li').removeClass('on');
                    return false;
                }
                var parent = $('ul');
                $('li').removeClass('on');
                //選擇包含文本框值的所有加上focus類樣式,並把它(們)移到ul的最前面
                // prependTo() 方法在被選元素的開頭(仍位於內部)插入指定內容
                // contains 選擇器,選取包含指定字符串的元素
                $("li:contains('"+index+"')").prependTo(parent).addClass('on');
                $("p:contains('"+index+"')").parent().prependTo(parent).addClass('on');
            });
        });
    </script>
</head>
<body>
    <div class="searchDiv">
        我要搜:<input type="text" id="index"/>
        <ul>
            <li>鄭州的文武<p>zzdww</p></li>
            <li>我來自新鄉市<p>wlzxxs</p></li>
            <li>我的母校是中原工學院<p>wdmxszygxy</p></li>
            <li>我叫鄭斌<p>wjzb</p></li>
            <li>芳齡22<p>fl22</p></li>
        </ul>
    </div>
</body>
</html>

注意

用到了 jQuery 提供的 :contains 選擇器,詳情參考:http://www.w3school.com.cn/jquery/selector_contains.asp

后期優化,搜索標題的拼音首字母應由后台程序生成,詳情參考:http://blog.csdn.net/chunlongyuan/article/details/8514147


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM