获取 window.find 的所有事件
Get all the occurrences with window.find
我想在文本中突出显示我 URL 中某个单词的所有出现。
对于第一次出现,一切正常。但是不知道怎么去下一个
highlightText: function(urlParams) {
var urlSearch = window.location.search;
var urlParams = new URLSearchParams(urlSearch);
var searchText = urlParams.get('search');
if (window.find(searchText)) {
var el = document.getElementById('collection-content');
text = el.innerHTML;
marked = text.replace(searchText, "<mark>" + searchText + "</mark>");
el.innerHTML = marked;
}
}
我尝试在 if 之前添加一个 while(window.find(searchText)
但它不起作用,它似乎只在我的单词第一次出现时循环。
提前致谢
如果你不使用正则表达式,那么它只会替换第一次出现的,你可以试试这个,也可以根据你的需要修改正则表达式。
highlightText: function(urlParams) {
var urlSearch = window.location.search;
var urlParams = new URLSearchParams(urlSearch);
var searchText = urlParams.get('search');
if (window.find(searchText)) {
var el = document.getElementById('collection-content');
text = el.innerHTML;
marked = text.replace(
RegExp(`(${searchText})`),
"<mark>" + searchText + " </mark>");
el.innerHTML = marked;
}
}
注意:匹配区分大小写
我想在文本中突出显示我 URL 中某个单词的所有出现。 对于第一次出现,一切正常。但是不知道怎么去下一个
highlightText: function(urlParams) {
var urlSearch = window.location.search;
var urlParams = new URLSearchParams(urlSearch);
var searchText = urlParams.get('search');
if (window.find(searchText)) {
var el = document.getElementById('collection-content');
text = el.innerHTML;
marked = text.replace(searchText, "<mark>" + searchText + "</mark>");
el.innerHTML = marked;
}
}
我尝试在 if 之前添加一个 while(window.find(searchText)
但它不起作用,它似乎只在我的单词第一次出现时循环。
提前致谢
如果你不使用正则表达式,那么它只会替换第一次出现的,你可以试试这个,也可以根据你的需要修改正则表达式。
highlightText: function(urlParams) {
var urlSearch = window.location.search;
var urlParams = new URLSearchParams(urlSearch);
var searchText = urlParams.get('search');
if (window.find(searchText)) {
var el = document.getElementById('collection-content');
text = el.innerHTML;
marked = text.replace(
RegExp(`(${searchText})`),
"<mark>" + searchText + " </mark>");
el.innerHTML = marked;
}
}
注意:匹配区分大小写