繁体   English   中英

jQuery的Javascript高亮功能不起作用

Javascript highlight function with jquery not working

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用jQuery构建“简单”突出显示功能。 由于某种原因,这使我的HTML重复了,我不确定为什么。 我要做的就是在搜索栏中键入搜索文本,并在键入时突出显示标签中的文本。

有什么想法吗? 绝望...

这是HTML和JS

 function hiLite(searchWords) { if (searchWords) { var content = $("p").text(); var regExp = new RegExp(searchWords, "ig"); var matches = content.match(regExp); if (matches) { $("p").html(content.replace(regExp, function(match) { return "<span class='highlight'>" + match + "</span>"; })); } else { $(".highlight").removeClass("highlight"); } } else { $(".highlight").removeClass("highlight"); } }; $("#searchBar").keyup(function() { var userInput = $(this).val().toLowerCase(); hiLite(userInput); }); 
 <!doctype html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="photo_filter.css" type="text/css"> </head> <body> <div class="search">Search: <input type="text" id="searchBar"> </div> <div id="results"> <p>some text is here</p> <p>other kinds</p> <p>even more</p> </div> </body> </html> 

2 个回复

最大的问题是,当您确实需要分别评估每个<p>标签时,您一次选择了所有<p>标签。

如果我有3个<p>标记,并且这样做: $('p').html('I am ap tag!!'); -然后每个<p>标签都会受到影响。

同样,如果我这样做: var content = $('p').text(); -然后, content等于"some text is hereother kindseven more" ,即每个 <p>标记中的文本。 这不好!

尝试这个:

function hiLite(searchWords) {
    if (searchWords) {
        $('p').each(function(index, single_p) {
            var text = $(single_p).text(); // .text() does not include html, does not include any former <spans>
            $(single_p).html(text); // reset <p> html to be only the text from previous line
            var regExp = new RegExp(searchWords, "ig");

            var new_text = text.replace(regExp, '<span class="highlight">' + searchWords + '</span>'); // create new text with HTML highlight
            $(single_p).html(new_text); // update DOM with our new HTML
        });
    }
};


$("#searchBar").keyup(function() {
    var userInput = $(this).val().toLowerCase();
    hiLite(userInput);
});

解决方案2:

添加了条件以根据搜索文本突出显示文本

JS代码:

 function hiLite(searchWords){

        if(searchWords){
        var content = $("p").text();
        var regExp = new RegExp(searchWords, "ig");
        var matches = content.match(regExp);

       if(matches){
                        $('#results p').each(function() {
                        var test = '<span class="highlight">'+searchWords+'</span>';
                        var text = $(this).text();
                        $(this).html(text.replace(regExp, test)); 
                    });
            }

        } 
    };


$("#searchBar").keyup(function(){
 var userInput = $(this).val().toLowerCase();
 hiLite(userInput); 
});

HTML代码:

<div class="search">Search:     
<input type="text" id="searchBar">    
</div>

<div id="results">

    <p>some text is here</p>
    <p>other kinds</p>
    <p>even more</p>

</div>

CSS:

.highlight{
  color:red
}

JSFiddle

1 jQuery在Javascript函数中不起作用

这是场景 我有这个观点 这是我的Javascript代码与jQuery混合在一起 这是我的网络应用程序的屏幕截图(我正在使用laravel 5.4) 当我单击“填充数量/包”和“数量”字段中的数据时,“包”字段也应相应更新,例如 如果数量/包是5,并且我要赠送 ...

2 jQuery Highlight不起作用

我在页面上对jquery有以下引用: 以及 按钮点击事件中有很多编码,可在第一步给用户提供所输入数据的概览之前验证用于注册的用户输入,然后显示步骤2供用户输入其付款信息(如果输入错误)。在第1步中输入的数据,按钮验证将显示一个Error Div标签,我希望div标签突出显示以警告 ...

2012-03-25 18:57:25 1 352   jquery
3 jQuery高亮效果不起作用?

这是我的带有嵌入式javascript的ascx页面。 我想突出显示在视图更改时包装在div标签(用于测试目的div2)中的视图。 到目前为止,视图的变化很好,但是我无法使突出显示起作用。 我的JavaScript出了点问题吗?还是我还缺少其他东西? 谢谢 背后的 ...

4 jquery 效果突出显示不起作用

我正在使用我经常使用的高亮功能将头撞在墙上。 在控制台中运行时: 它返回: [ ... ] 这是我想强调的元素。 但是它没有突出显示它,我没有收到任何错误。 有趣的故事,因为当它起作用时; 但我喜欢高光,它本身有一个持续时间,它可以去除高光。 欢迎任何想法! http://js ...

5 ElasticSearch Javascript,突出显示不起作用

我们最近切换到了ElasticSearch Angular版本,除Highlight突出显示外,其他所有功能均按预期工作,该功能完全未返回。 这是我设置演示查询的方式: 如果我将相同的代码与经典XmlHttpRequest一起使用并传递包含突出显示的查询模型,则会返回一个JSON, ...

7 功能无法点击? (jquery的/ JavaScript的)

这是我编码时可能遇到的最令人沮丧的错误。 我试图单击一个按钮,并在警报框中将其弹出“你好”。 如果我准备好取出文档,则可以使用。 如果我删除该功能,而在document.ready中仅具有警告框,它也可以工作,但显然无需单击即可。 但是,JS不能一起工作,我也不知道为什么。 HTM ...

8 Javascript函数在jquery中不起作用[关闭]

我想为sms应用程序计算类型字符字节。 如果输入ASCII,则计数为1个字节;对于非ASCII,则计数为2个字节。 如果总字符字节超过80字节,则脚本应发出警报('您已达到80字节以上'),此后它应从最终剪切直到小于80字节。 但是,cutBylen()函数似乎无法在此脚本中使用。 它只 ...

9 Jquery中的Javascript函数响应不起作用

我有一种使用ajax将评论发布到video_comment.php的形式,然后在视频页面上实时显示评论。 这是我的jQuery代码: 在video_comment.php上,这是用于在视频页面上实时显示评论的response.code。 我没有问题可以获取“文本...”,但 ...

10 使用JavaScript或jQuery突出显示文本

所以我对JavaScript还是很陌生,所以如果有人可以帮助我,我将非常感激,基本上,我正在使用像下面这样的html页面 现在我只对html代码的Level列感兴趣,我希望我的JavaScript或jQuery脚本以红色背景色突出显示第3级的任何大小写,任何示例代码或演示都将非常有帮助:) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM