本文實例講述了jQuery實現模糊查詢的方法。分享給大家供大家參考,具體如下:
需求:list列表內容很多,用戶需要找出列表內容中的某些條目,只有當與用戶輸入值匹配的條目才顯示出來。(后臺無分頁,直接異步接口返回數據添加形成的內容列表)
雖然可以通過傳參再調用查詢出來,但這里主要記錄的是前端處理進行模糊查詢而無需再次調用接口的實現方法。
html部分:
<div class="search-form">
<input type="text" placeholder="請輸入關鍵詞">
<span class="icon-clear"></span>
</div>
<div class="content">
<div class="title row no-gutter">
<div class="col-20">列表一</div>
<div class="col-20">列表二</div>
<div class="col-20">列表三</div>
<div class="col-20">列表四</div>
<div class="col-20">列表五</div>
</div>
<div class="list-content">
<ul>
<li>
<div class="code">00001</div>
<div class="name">內容1</div>
<div>內容2</div>
<div>內容3</div>
<div>內容4</div>
</li>
<li>……</li>
</ul>
</div>
</div>
js部分:
queryList: function(){
$(".search-input").on("input propertychange", function() {
var queryStr = $.trim($(".search-input").val());
if(queryStr === ''){
$(".list-content li").show();
}else{
// 以下是匹配某些列的內容,如果是匹配全部列的話就把find()和.parent()去掉即可
$(".list-content li").hide().find(".code, .name").filter(":contains('"+queryStr+"')").parent("li").show();
//$(".list-content").refresh(); //重新刷新列表把隱藏的dom結構去掉。
}
});
}
分析:以上即實現了前端js的模糊查詢功能啦,哈哈。代碼中監聽事件中多加了input,據說是為兼容iOS的,具體沒測試,有哪位大神測試了可以告知一聲哈,謝謝了。
還有個問題就是,以上實現方法,當列表內容多大幾千條數目或者更多時,表單輸入時會出現卡頓的情況,因為要通過js操作大量的DOM結構?。[藏或顯示),PC上或許情況還沒有那么嚴重,在手機上測試時那真的是“怎一個卡字了得”,如果哪位大神有更好的法子,還望加以完善!
更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jQuery表格(table)操作技巧匯總》、《jQuery切換特效與技巧總結》、《jQuery擴展技巧總結》、《jQuery常用插件及用法總結》、《jQuery拖拽特效與技巧總結》、《jquery中Ajax用法總結》、《jQuery常見經典特效匯總》、《jQuery動畫與特效用法總結》及《jquery選擇器用法總結》
希望本文所述對大家jQuery程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。