微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用window.find获取所有出现的事件

如何解决使用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;
  }
}

注意:匹配项区分大小写

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。