案例詳解_使用javascript編寫使用者清單組合條件篩選
本文介紹如何使用原生js撰寫使用者清單組合條件篩選?可以透過按鈕和輸入文字進行組合條件篩選的功能,以下用程式碼將詳細介紹,先上一張效果圖:
這裡使用陣列模擬後台資料(可用ajax請求後台資料):
var person = [ { name: '王小妹', src: '01pic.jpg', sex: 'male', des: '漂亮的妹子'}, { name: '金小妹', src: '02pic.jpg', sex: 'male', des: '漂亮的程序媛'}, { name: '陈小华', src: '07pic.jpg', sex: 'female', des: '相互学习'}, { name: '马爱国', src: '08pic.jpg', sex: 'female', des: '喜欢猫'}, { name: '邓小茜', src: '04pic.jpg', sex: 'male', des: '喜欢运动'}, { name: '马学习', src: '06pic.jpg', sex: 'female', des: '喜欢看书'} ]
主要html結構:
<body> <p class="wrapper"> <p class="search"> <input type="text" placeholder="请输入用户名" id="input"> <ul id="searchUl"> <li class="active" sex = "all">All</li> <li sex = "male">Male</li> <li sex = "female">Female</li> </ul> </p> <p class="userList"> <ul id="list"> <!-- 方便确定插入数据的结构和样式 --> <!-- <li><img src="/static/imghw/default1.png" data-src="./images/01pic.jpg" class="lazy" alt=""> <span class="name">小航</span> <span class="des">描述</span> </li> --> </ul> </p> </p> <script src="./searchingData.js"></script> </body>
想法及js核心程式碼:
1)渲染dom結構:使用forEach()方法遍歷數組,找出符合條件的數據,有幾個資料就產生幾個li結構程式碼區塊,然後把產生的li結構插入ul中去;
var listUl = document.getElementById('list'); var oInp = document.getElementById('input'); var sUl = document.getElementById('searchUl'); //渲染dom结构,遍历数组使用forEach()方法 function render(list){ var str = ''; list.forEach(function(ele, index){ str += '<li><img src="/static/imghw/default1.png" data-src="./images/'+ ele.src +'" class="lazy" alt="">\ <span class="name">'+ ele.name +'</span>\ <span class="des">'+ ele.des +'</span></li>'; }); listUl.innerHTML = str; }
2)單一輸入框文字篩選:取得input輸入框輸入的值,綁定一個oninput事件,使用使用陣列過濾篩選方法filter()進行文字過濾;
//获取input输入的value值,需绑定一个oninput事件,获取过滤结果后渲染 oInp.oninput = function(){ var text = this.value; //state.text = this.value; //组合条件筛选 render(filterText(text, person)); //单一筛选、渲染 //render(addFn(filterFn,person)); //组合条件筛选、渲染 } //输入文本过滤 function filterText(val, arr){ var fArr = arr.filter(function(ele, index){ if(ele.name.indexOf(val) !== -1){ return true; } }) return fArr; }
3)單一點擊按鈕篩選:點擊事件綁定在ul上,由li觸發
//绑定点击事件 sUl.addEventListener('click', function(e){ if(e.target.tagName == 'LI'){ var sex = e.target.getAttribute('sex'); //state.sex = e.target.getAttribute('sex'); //组合条件筛选 document.getElementsByClassName('active')[0].className = ''; //修改点击按钮的样式 e.target.className = 'active'; //修改点击按钮的样式 render(filterSex(sex, person)); //render(addFn(filterFn,person));//组合条件筛选、渲染 } }) //点击按钮筛选 function filterSex(sex, arr){ if(sex == 'all'){ return arr; }else{ var sArr = arr.filter(function(ele, index){ if(sex == ele.sex){ return true; } }) return sArr; } }
4 )組合條件篩選:透過兩個物件的prop把組合物件(輸入方塊和按鈕)和篩選函數連結起來
//组合筛选,在一个筛选结果的基础上筛选(修改传入数组arr),参数lastArr上一次筛选返回的数组 //筛选条件:实现筛选条件的函数 var filterFn = { text: filterText, sex: filterSex } //筛选条件:之前的筛选的值text、sex 要改为 state.text state.sex var state = { text: '', sex: 'all' } //组合 function addFn(obj, arr){ var lastArr = arr; for(var prop in obj){ lastArr = obj[prop](state[prop], lastArr); console.log(lastArr); } return lastArr; }
相關文章:
#相關影片:
##使用JavaScript-李炎。 Javascript影片教學
以上是案例詳解_使用javascript編寫使用者清單組合條件篩選的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。
