javascript - 如何突出显示替换文本的所有实例
问题描述
我正在尝试突出显示div
与文本字符串匹配的所有实例。这是div:
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
我希望字符串"Lorem ipsum"
突出显示两次,所以我使用以下代码:
let textCurrent = $("div").html().trim();
let text = "Lorem ipsum";
let newText = "Lorem ipsum";
textCurrent = textCurrent.replace(text, "<span class='highlight'>"+newText+"</span>");
$("div").html(textCurrent);
它突出了“Lorem ipsum”的第一个实例,但问题是它只突出了“Lorem ipsum”的第一个实例,而不是两个实例。当我用实际字符串替换变量text
时,如下所示:newText
textCurrent = textCurrent.replace(/'Lorem ipsum'/g, "<span class='highlight'>Lorem ipsum</span>");
$("div").html(textCurrent);
有用。但是如何在使用 和 等变量时突出显示所有text
实例newText
?
https://jsfiddle.net/crdiling/zmyxtd79/7/
`
解决方案
你可能会喜欢:-
$(function(){
let textCurrent = $("div").html().trim();
let text = "Lorem ipsum";
let newText = "Lorem ipsum";
let replaceText = "<span class='highlight'>"+newText+"</span>";
textCurrent = textCurrent.replace(new RegExp(text, 'g'), replaceText);
$("div").html(textCurrent);
});
.highlight {
background:yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
推荐阅读
- c# - 批处理脚本查找进程PID
- python - 如何在 Django ModelForm 中自动聚焦 Charfield
- android - Android Kotlin Hiding not Included ProgressBar with Text using Binding Variables not Hiding the Layout
- django - user.is_authenticated 在 html 中有效,但在视图中无效
- python - 多处理池生成初始化非常慢,16 个进程为 100 秒
- ruby-on-rails - Ruby on rails.Generating 控制器
- azure-cosmosdb - 为处理夜间大查询和大数据的单个容器设计 Cosmos 分区键
- c++ - C++20 行为用相等运算符破坏现有代码?
- base64 - 市政府公共记录请求中电子邮件的 Base64 编码附件
- android - Android:Activity 中的 Jetpack Compose 和 XML