• 热词搜索_针对关键词的样式实现步骤


    第一步,页面部分

    //项目版本
    @{
    var t=1;
    }
    <div>
    @foreach(var item in Modle.xxx){//Model为服务器端返回来的总条数数据
     <div class="selfClass"id="selelet@(t)">@item.Content</div>
    t++;
    }
       
     </div>
    
    
    //原理解析版本
    <div>
        <div class="selfClass"id="sel1">dfsdfkkksdfdsfsdfdsf你好dsfsfsfsf</div>
        <div class="selfClass"id="self2">dfsdfkkksdfdsfsdfdsf你好dsfsfsfsf</div>
        <div class="selfClass"id="self3">dfsdfkkksdfdsfsdfdsf你好dsfsfsfsf</div>
     </div>
    <div id="shoWId" style=" 100px;height:200px;background-color: #018eea">
    <button>点击</button></div> //按钮

    3.jquery

     $("#shoWId>button").click(function () {
       var Content=new Array();//存放文本内容的容器
         var guanzi="kkk";//关键字不能为空,所以在项目中需要在此处获取搜索框里面的关键词,并判断不为空是才去执行以下部分
      
         var SelfContent=document.getElementsByClassName("selfClass");     for(var i=0;i<SelfContent.length;i++){
           Content.push(SelfContent[i].innerText);
         }
    
         for(var k=0;k<Content.length;k++){
    
             togod(Content[k],guanzi,k);
    
         }
     });
    function  togod(contentStr,key,KID) {
    
            var set="";
        var positionKey=contentStr.indexOf(key);
    
        var positionArray=new Array();//存放关键字在文本中的文字的容器
        while (positionKey>-1){
            positionArray.push(positionKey);
            positionKey=contentStr.indexOf(key,positionKey+1);
        }
        for(var j=0;j<positionArray.length;j++){
            var s1=contentStr.substring(0,positionArray[j]);
            var s2='<span  style="color: red;">'+key+'</span>';
            var s3=contentStr.substring(positionArray[j]+key.length,contentStr.length);
                 set=s1+s2+s3;//重新组装
        }
    var currentId = "select" + KID; document.getElementById(
    "currentId").innerHTML=set;//重新渲染 }

    以下是一个例子:

    第一,Html部分:

    @{
    y=0;
    var omit="..."; }
    <div class="dxcsearch_content_result_list_title" id="cateMessage@(y)"> @if (item.Title.Length > 45) { @item.Title.Substring(0, 45)@omit } else { @item.Title } </div>

    第二,Jquery部分

    <script>
        var content = new Array()
        var cateMessage = "@Model.CateMessage";//关键字是从服务器端返回的
        var contentList = document.getElementsByClassName('dxcsearch_content_result_list_title');
       
        if (cateMessage!="") {
            for (var i = 0; i < contentList.length; i++) {
                content.push(contentList[i].innerText);
            }
            for (var k = 0; k < content.length; k++) {
                searchSubStr(content[k], cateMessage, k);
            }
            function searchSubStr(str, subStr, p) {
                var set = "";
                var pos = str.indexOf(subStr);
                var positions = new Array();
                while (pos > -1) {
                    positions.push(pos);
                    pos = str.indexOf(subStr, pos + 1);
                }
    
                for (var j = 0; j < positions.length; j++) {
                    var s1 = str.substring(0, positions[j]);
    
                    var s2 = '<span style="color:#fe8081">' + cateMessage + '</span >';
    
                    var s3 = str.substring(positions[j] + cateMessage.length, str.length);
    
                    set = s1 + s2 + s3;
    
                }
                var currentId = "cateMessage" + p;
                document.getElementById(currentId).innerHTML = set;
            }
        }
    </script>
  • 相关阅读:
    Subversion版本控制系统的安装和操作.
    java基础
    iOS_第3方类库MBprogressHUD
    wikioi 1396 伸展树(两个模板)
    从乐视和小米“最火电视”之战 看PR传播策略
    Android开发之大位图压缩水印处理
    Spark SQL with Hive
    PHP设计模式——模板模式
    Nginx 配置 gzip 压缩
    SecureCRT学习之道:SecureCRT 经常使用技巧
  • 原文地址:https://www.cnblogs.com/wfaceboss/p/7420415.html
Copyright © 2020-2023  润新知