怎么在vue項目中實現(xiàn)一個ctrl+f搜索功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供德安網(wǎng)站建設、德安做網(wǎng)站、德安網(wǎng)站設計、德安網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、德安企業(yè)網(wǎng)站模板建站服務,十余年德安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
首先代碼結(jié)構(gòu)如下:
//頁面頭部,搜索框部分//頁面內(nèi)容部分,具體內(nèi)容由后端傳入的datelist中的lawContent提供
搜索內(nèi)容把對應內(nèi)容變?yōu)榧t色的函數(shù)就是changeColor
changeColor(item) { let searchitem = this.searchitem; //獲取動態(tài)變化的搜索詞 if (searchitem !== '') { //若搜索詞不為空,對搜索詞進行替換 return item.replace(new RegExp(searchitem, 'g'), '' + searchitem + ''); } else { return item; } },
到此,動態(tài)輸入標紅搜索詞的功能已經(jīng)做好了,但是搜索框還有一個回車事件我覺得在實際上也應該有點用,比如跳到第一個關(guān)鍵詞什么的,這個時候,我又看見了一個神奇的方法
document.getElementsByTagName("a").scrollIntoView();
當頁面可以支持滑動時,scrollIntoView可以把對于元素滑倒頁面頂部(默認),也可以通過參數(shù)賦值給false讓對應元素賦值到底部,僅支持原生js,jQuery中沒有這個方法,那么問題來了,我上面替換出了那么多a標簽,怎么能讓他們排好隊一個一個被調(diào)用了,那當然只能遍歷了,但是原生js中沒有jQuery中eq那樣的選擇器,怎么才能讓js知道我要找的是第n個a標簽呢
submit(){ let num = document.getElementsByTagName("a").length; //獲取所有a標簽的數(shù)量,這個頁面所有的a標簽都是由查詢替換獲得的,所以a標簽的數(shù)量可以當場查詢到關(guān)鍵詞的數(shù)量 if(num != 0){ //如果查詢關(guān)鍵詞存在,跳到第一個關(guān)鍵詞的位置,標頭增1,走滿一圈歸0 document.getElementsByTagName("a")[this.searchhead].scrollIntoView(); //scrollIntoView方法只在原生document中可以使用,jquery中沒有這個方法,參數(shù)默認是true,將這個元素置于頁面第一行(如果頁面可以滑動函數(shù)才生效) if(this.searchhead < (num - 1)){ this.searchhead += 1; }else if(this.searchhead == (num - 1)){ this.searchhead = 0; } } },
原來,getElementsByTagName(“a”)
返回的是帶有指定標簽名的對象的集合。通過對數(shù)組的序列的調(diào)用就可以完成對方法的依次調(diào)用。
至此,這個簡單頁面的功能已基本實現(xiàn),
源碼
看完上述內(nèi)容,你們掌握怎么在vue項目中實現(xiàn)一個ctrl+f搜索功能的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!