首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用纯Javascript突出显示包含其他元素的元素的textContent或innerText,该元素也基于用户的searchedWords

要使用纯Javascript突出显示包含其他元素的元素的textContent或innerText,可以通过以下步骤实现:

  1. 获取要搜索的关键词(searchedWords)和包含该关键词的元素的父元素(parentElement)。
  2. 遍历父元素的所有子元素,判断子元素的textContent或innerText是否包含关键词。
  3. 如果包含关键词,可以使用HTML的<span>标签或其他合适的标签来包裹关键词,并设置相应的样式来突出显示。
  4. 替换原始的textContent或innerText为包含突出显示的HTML代码。
  5. 如果需要多次突出显示不同的关键词,可以将上述步骤封装为一个函数,并传入不同的关键词和父元素进行调用。

以下是一个示例代码:

代码语言:txt
复制
function highlightKeywords(searchedWords, parentElement) {
  const elements = parentElement.getElementsByTagName('*');
  
  for (let i = 0; i < elements.length; i++) {
    const element = elements[i];
    const text = element.textContent || element.innerText;
    
    if (text.includes(searchedWords)) {
      const highlightedText = text.replace(new RegExp(searchedWords, 'gi'), '<span class="highlighted">$&</span>');
      element.innerHTML = highlightedText;
    }
  }
}

// 调用示例
const parentElement = document.getElementById('parentElement');
const searchedWords = '关键词';
highlightKeywords(searchedWords, parentElement);

在上述示例中,我们使用了正则表达式来进行全局匹配(g)和不区分大小写匹配(i),以确保突出显示所有匹配的关键词。同时,我们使用了<span class="highlighted">标签来包裹关键词,并为其添加了一个名为"highlighted"的CSS类,你可以根据需要自定义该类的样式。

请注意,上述示例中没有提及任何特定的云计算品牌商或产品,因为这与问题的要求相符。如果你需要推荐腾讯云相关产品来支持云计算领域的开发工作,你可以在回答中提供相关产品的名称和简介,并附上腾讯云官方网站的链接供读者进一步了解。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DOM、BOM一些兼容性问题

汇集了许多关于DOM和BOM的兼容性问题,主要是关于 IE 浏览器的,考虑到浏览器迭代,这里主要列出了 IE8 以及之后的浏览器版本。 IE8 浏览器在 2008年推出,距现在(2019)已有11年之久,已经是很老的一款浏览器了。但是在一些项目中,可能仍需要考虑到兼容性,如果兼容到 IE8 已经是很兼容了,毕竟该浏览器也几乎没多少市场份额了。多是一些机构或政府部门在使用。而有些兼容性问题也可能是其它浏览器之间的差异,比如 Chrome 和 FireFox 对于鼠标滚轮事件对象的滚轮方向判断方式不同,Chrome使用 wheelDelta,而FireFox 则采用 detail 做判断。下面将一一说明或做补充实现来尽量弥补浏览器之间的差异。其实大部分就是为了兼容 IE 早期浏览器。

02
领券