最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angularjs實現(xiàn)搜索關鍵字高亮顯示效果

 更新時間:2017年01月17日 16:44:48   作者:1000px  
本篇文章主要介紹了Angularjs實現(xiàn)搜索關鍵字高亮顯示的方法,具有一定的參考價值,下面跟著小編一起來看下吧

需求分析:

根據(jù)關鍵字搜索網(wǎng)頁內(nèi)容,并且高亮顯示內(nèi)容中的關鍵字

細節(jié)分析:

 1、每次執(zhí)行搜索操作,需清空上一次結果

 2、需區(qū)分html標簽和正常文本內(nèi)容,否則為關鍵字添加樣式以后會出現(xiàn)標簽內(nèi)容被顯示的情況

代碼思路:

利用正則表達式匹配關鍵字

使用javascript字符串替換的方式,將關鍵字替換成<span class='red'>關鍵字</span>

為了避免出現(xiàn)當關鍵字為 'p' 時候,將標簽<p>替換成<<span>p</span>>……等等的情況

所有匹配和替換操作只針對當前DOM元素中文本節(jié)點,通過遞歸函數(shù)遍歷操作所有節(jié)點

前端框架:

angularjs^1.2.9

$scope.myData = '<div>woshihight<h2>womei<b>bbb</b>shihigh<span>haha</span></h2><span>1000pxhight</span><ul><li>1high</li><li>2hight span light hight< p></li></ul><a href="index.html">這個是鏈接地址hight</a></div>';
 $scope.myDataCp = angular.copy($scope.myData);
 $scope.key = '';
 $scope.searchKey = function() {
 if($scope.key != '') {
 searchHighLight($scope.key);
 }
 }
 function searchHighLight(key) {
 var _element = angular.element($scope.myDataCp);
 nodeRecursion(_element[0],key);
 var _htmlStr = _element[0].innerHTML.toString();
 _htmlStr = _htmlStr.replace(/_1000px_/g, '<span class="red">').replace(/_xp0001_/g, '</span>');
 $scope.myData = _htmlStr;
 }
 //循環(huán)遍歷替換所有文本節(jié)點內(nèi)容
 function nodeRecursion(e, key) {
 var reg = new RegExp(key, 'g');
 var _count = e.childNodes.length;
 for(var _i=0; _i < _count; _i++) {
 if(e.childNodes.item(_i).nodeType == 3) {
 var _str = e.childNodes.item(_i).data;
 if(_str.indexOf(key)!=-1) {
 _str = _str.replace(reg,'_1000px_'+key+'_xp0001_');
 }
 e.childNodes.item(_i).data = _str;
 } else {
 nodeRecursion(e.childNodes.item(_i), key);
 }
 }
 }

其他說明:

searchKey //點擊搜索按鈕調(diào)用該方法

$scope.myData 中的html字符串必須有一個根節(jié)點,比如這里的div

html頁面中加載該html字段需要ng-bind-html指令,該指令需要加載ngSanitize模塊

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • AngularJS通過$location獲取及改變當前頁面的URL

    AngularJS通過$location獲取及改變當前頁面的URL

    本篇將介紹AngularJS中的$location服務的基本用法,$location服務的主要作用是用于獲取當前url以及改變當前的url,并且存入歷史記錄。本文通過示例代碼介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • Angular通過?HTTP?Interceptor?實現(xiàn)?HTTP?請求超時監(jiān)控的例子

    Angular通過?HTTP?Interceptor?實現(xiàn)?HTTP?請求超時監(jiān)控的例子

    這篇文章主要介紹了Angular?如何通過?HTTP?Interceptor?實現(xiàn)?HTTP?請求的超時監(jiān)控,本文通過例子給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 淺談Angular單元測試總結

    淺談Angular單元測試總結

    這篇文章主要介紹了淺談Angular單元測試總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • AngularJS HTML編譯器介紹

    AngularJS HTML編譯器介紹

    這篇文章主要介紹了AngularJS HTML編譯器介紹,AngularJS的HTML編譯器能讓瀏覽器識別新的HTML語法。它能讓你將行為關聯(lián)到HTML元素或者屬性上,甚至能讓你創(chuàng)造具有自定義行為的新元素,需要的朋友可以參考下
    2014-12-12
  • 詳解基于angular路由的requireJs按需加載js

    詳解基于angular路由的requireJs按需加載js

    本篇文章主要介紹了詳解基于angular路由的requireJs按需加載js,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Angular 表單控件示例代碼

    Angular 表單控件示例代碼

    本文的主要是演示 Template-driven 中,一些常用控件的使用方式,僅供參考。具體請根據(jù)實際業(yè)務需求做相應調(diào)整。
    2017-06-06
  • AngularJs 國際化(I18n/L10n)詳解

    AngularJs 國際化(I18n/L10n)詳解

    本文主要介紹AngularJs 國際化的知識,這里整理了詳細的資料來講解國際化,有需要的小伙伴可以參考下
    2016-09-09
  • AngularJS實現(xiàn)動態(tài)切換樣式的方法分析

    AngularJS實現(xiàn)動態(tài)切換樣式的方法分析

    這篇文章主要介紹了AngularJS實現(xiàn)動態(tài)切換樣式的方法,結合實例形式分析了AngularJS事件響應與樣式動態(tài)控制相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • 在Angular中使用JWT認證方法示例

    在Angular中使用JWT認證方法示例

    這篇文章主要介紹了在Angular中使用JWT認證方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Angular使用Md5加密的解決方法

    Angular使用Md5加密的解決方法

    這篇文章主要介紹了Angular使用Md5加密的解決方法,需要的朋友可以參考下
    2017-09-09

最新評論

永靖县| 铅山县| 平谷区| 柳林县| 梁河县| 彰武县| 治县。| 黑山县| 临潭县| 福泉市| 台北县| 九龙城区| 冕宁县| 沙湾县| 响水县| 兰考县| 姚安县| 临夏市| 贺兰县| 五峰| 澳门| 壶关县| 绍兴县| 梨树县| 平顺县| 长泰县| 竹溪县| 顺昌县| 瓮安县| 科尔| 阿克陶县| 酒泉市| 固始县| 瓦房店市| 治多县| 康马县| 常宁市| 五大连池市| 璧山县| 铜山县| 奉节县|