Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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_Regex_String_Replace - Fatal编程技术网

Jquery 如何使用正则表达式和锚定标记突出显示另一个元素中的单词

Jquery 如何使用正则表达式和锚定标记突出显示另一个元素中的单词,jquery,regex,string,replace,Jquery,Regex,String,Replace,我希望能够点击锚标签,并让它突出显示其下方div中的相应单词。似乎我看到的每个例子都需要输入,但我希望能够使用按钮或锚定标记来完成。这是我的小提琴,还没用。有什么我遗漏的吗 $(“#搜索”)。单击(函数(){ var test=newregexp( $(“\\”搜索“).text().replace(/[-\/\^$*+?。()”[124;[\]{}]/g,“\\$&”), ‘gi’; $('#sample').children().addBack().not('.highlight').co

我希望能够点击锚标签,并让它突出显示其下方div中的相应单词。似乎我看到的每个例子都需要输入,但我希望能够使用按钮或锚定标记来完成。这是我的小提琴,还没用。有什么我遗漏的吗

$(“#搜索”)。单击(函数(){
var test=newregexp(
$(“\\”搜索“).text().replace(/[-\/\^$*+?。()”[124;[\]{}]/g,“\\$&”),
‘gi’;
$('#sample').children().addBack().not('.highlight').contents().filter(函数()){
返回this.nodeType==3;
}).replaceWith(函数(){
返回此.str.replace(测试,$&');
});
});
$(“#还原”)。单击(函数(){
$(“.highlight”).contents().unwrap();
});

老实说,我不能很好地理解你的代码。但我已经为你需要的东西编写了代码,即:


单击
#搜索
时,我们检索其
文本()
,并将
#示例
替换为
搜索
的文本
单击
#还原
时,我们仅将
#示例
html()
替换为
#示例
文本()


$(“#搜索”)。单击(函数(){
var re=new RegExp(“\\b”+$(“#搜索”).text()+“\\b”,“ig”);
$(“#示例”).html($(“#示例”).text().replace(re,,$&'))
});
$(“#还原”)。单击(函数(){
$(“#示例”).html($(“#示例”).text());
});
。突出显示{
背景颜色:黄色;
}

还原

突出显示Yoda Yodada这个词

老实说,我不能很好地理解你的代码。但我已经为你需要的东西编写了代码,即:


单击
#搜索
时,我们检索其
文本()
,并将
#示例
替换为
搜索
的文本
单击
#还原
时,我们仅将
#示例
html()
替换为
#示例
文本()


$(“#搜索”)。单击(函数(){
var re=new RegExp(“\\b”+$(“#搜索”).text()+“\\b”,“ig”);
$(“#示例”).html($(“#示例”).text().replace(re,,$&'))
});
$(“#还原”)。单击(函数(){
$(“#示例”).html($(“#示例”).text());
});
。突出显示{
背景颜色:黄色;
}

还原

突出显示Yoda Yodada这个词

这是我能够使用的代码。它与您尝试的不完全相同,特别是在查找要替换的文本方面

$('#search').click(function () {
    var newtext = $('#search').text().replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    var test = new RegExp(newtext, 'gi');
    $('#sample').html($('#sample').text().replace(test, '<span class="highlight">$&</span>'));
});
$(“#搜索”)。单击(函数(){
var newtext=$('search').text();
var测试=新的RegExp(newtext,'gi');
$('#sample').html($('#sample').text().replace(test,'$&'));
});

这将突出显示选定的单词。带过滤器的代码对我来说没有意义,因为您试图实现什么,所以我简化了代码以使突出显示正常工作。

这是我能够使用的代码。它与您尝试的不完全相同,特别是在查找要替换的文本方面

$('#search').click(function () {
    var newtext = $('#search').text().replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    var test = new RegExp(newtext, 'gi');
    $('#sample').html($('#sample').text().replace(test, '<span class="highlight">$&</span>'));
});
$(“#搜索”)。单击(函数(){
var newtext=$('search').text();
var测试=新的RegExp(newtext,'gi');
$('#sample').html($('#sample').text().replace(test,'$&'));
});

这将突出显示选定的单词。带有过滤器的代码对我来说没有意义,因此我简化了代码以使突出显示有效。

您的代码和已回复的答案没有错误,但可能会产生负面影响。将
.html()
与jQuery一起使用,或将
innerHTML
与VanillaJS一起使用,将销毁元素上的所有事件,并一次又一次地触发DOM的生成。所以,请停止这样做,否则你会遇到更多的陷阱使用为此构建的现有组件

看一看,它是关键字/搜索词或自定义正则表达式的高亮显示。它也可以作为jQuery插件提供。 下面的示例演示了如何在上下文中动态突出显示输入中输入的文本(请参见下面的演示)

var-markInstance=新标记(document.querySelector(“.context”);
函数高亮显示(){
var searchTerm=document.querySelector(“输入”).value;
markInstance.unmark().mark(searchTerm);
}
标记{
背景:黄色;
}

他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。他说:“我的工作是在工作中完成的,我的工作是在工作中完成的,我的工作是在工作中完成的。”。在vero eos和accusam以及justo duo dolores和ea Reum。斯泰特·克莱塔·卡斯德·古伯格伦(Stet clita kasd gubergren),没有海洋保护区是属于同一领域的。


您的代码和已回复的答案没有错误,但可能会产生负面影响。将
.html()
与jQuery一起使用,或将
innerHTML
与VanillaJS一起使用,将销毁元素上的所有事件,并一次又一次地触发DOM的生成。所以,请停止这样做,否则你会遇到更多的陷阱使用为此构建的现有组件

看一看,它是关键字/搜索词或自定义正则表达式的高亮显示。它也可以作为jQuery插件提供。 下面的示例演示了如何在上下文中动态突出显示输入中输入的文本(请参见下面的演示)

var markInstan