Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
:如何使用jQuery突出显示某些单词_Jquery - Fatal编程技术网

:如何使用jQuery突出显示某些单词

:如何使用jQuery突出显示某些单词,jquery,Jquery,我正在寻找一个脚本,它可以根据单词的位置突出显示一定数量的单词。 例如,对于以下内容,我只想突出显示第二个、第三个和第四个单词: <p> Quisque bibendum sem ut lacus. Integer dolor ullamcorper libero. Aliquam rhoncus eros at augue. Suspendisse vitae mauris. </p> 这是一个很好的例子。整数多洛·乌拉姆科珀·利伯罗。 阿利奎姆·朗

我正在寻找一个脚本,它可以根据单词的位置突出显示一定数量的单词。 例如,对于以下内容,我只想突出显示第二个、第三个和第四个单词:

<p>
    Quisque bibendum sem ut lacus. Integer dolor ullamcorper libero.
    Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>

这是一个很好的例子。整数多洛·乌拉姆科珀·利伯罗。
阿利奎姆·朗库斯·厄罗斯在奥古斯。毛里斯之家酒店。

结果应该是:

<p>
    Quisque <span class="highlight">bibendum sem ut</span> lacus. Integer dolor ullamcorper libero.
    Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>

这是一个很好的例子。整数多洛·乌拉姆科珀·利伯罗。
阿利奎姆·朗库斯·厄罗斯在奥古斯。毛里斯之家酒店。


多谢各位

这个jQuery插件正是您想要的:

它执行您想要的操作,遍历domtextnodes并查找要搜索的文本,当找到一个匹配项时,它将创建一个span元素

用法:

$('p').highlight('bibendum sem ut'); 

这个jQuery插件就是您想要的:

它执行您想要的操作,遍历domtextnodes并查找要搜索的文本,当找到一个匹配项时,它将创建一个span元素

用法:

$('p').highlight('bibendum sem ut'); 

我编写了一个非常简单的函数,它使用jQuery来迭代使用.highlight类包装每个关键字的元素

function highlight_words(word, element) {
    if(word) {
        var textNodes;
        word = word.replace(/\W/g, '');
        var str = word.split(" ");
        $(str).each(function() {
            var term = this;
            var textNodes = $(element).contents().filter(function() { return this.nodeType === 3 });
            textNodes.each(function() {
              var content = $(this).text();
              var regex = new RegExp(term, "gi");
              content = content.replace(regex, '<span class="highlight">' + term + '</span>');
              $(this).replaceWith(content);
            });
        });
    }
}
函数突出显示\u单词(单词、元素){
如果(字){
var文本节点;
word=word.replace(/\W/g',);
var str=word.split(“”);
$(str).每个(函数(){
var术语=此;
var textNodes=$(element).contents().filter(函数(){返回this.nodeType===3});
textNodes.each(函数(){
var content=$(this.text();
var regex=新RegExp(术语“gi”);
content=content.replace(regex,“+术语+”);
$(此).替换为(内容);
});
});
}
}
更多信息:


我编写了一个非常简单的函数,它使用jQuery迭代使用.highlight类包装每个关键字的元素

function highlight_words(word, element) {
    if(word) {
        var textNodes;
        word = word.replace(/\W/g, '');
        var str = word.split(" ");
        $(str).each(function() {
            var term = this;
            var textNodes = $(element).contents().filter(function() { return this.nodeType === 3 });
            textNodes.each(function() {
              var content = $(this).text();
              var regex = new RegExp(term, "gi");
              content = content.replace(regex, '<span class="highlight">' + term + '</span>');
              $(this).replaceWith(content);
            });
        });
    }
}
函数突出显示\u单词(单词、元素){
如果(字){
var文本节点;
word=word.replace(/\W/g',);
var str=word.split(“”);
$(str).每个(函数(){
var术语=此;
var textNodes=$(element).contents().filter(函数(){返回this.nodeType===3});
textNodes.each(函数(){
var content=$(this.text();
var regex=新RegExp(术语“gi”);
content=content.replace(regex,“+术语+”);
$(此).替换为(内容);
});
});
}
}
更多信息:


谢谢您的回答!我只知道要突出显示的单词的位置,但不知道单词本身。例如,如果我想突出一个短语的第10到第15个单词…谢谢你的回答!我只知道要突出显示的单词的位置,但不知道单词本身。例如,如果我想突出显示短语的第10到15个单词。。。