在前端开发中,我们很经常需要搜索关键字并将其高亮显示。然而,实现关键字高亮的过程却并不是那么容易。这时候,我们就可以使用 npm 包 mark.js-clone。
什么是 mark.js-clone?
mark.js-clone 是一个用于在页面上对关键字进行高亮的 JavaScript 库。它可以在 HTML 的文本节点中通过搜索关键字并将其用特定的 CSS 样式进行高亮显示。
安装 mark.js-clone
安装 mark.js-clone 的方法很简单,只需要在终端中输入以下命令:
npm install mark.js-clone
使用 mark.js-clone
引入 mark.js-clone
引入 mark.js-clone 的方式很简单,只需要在 HTML 文件中引入 mark.js-clone 的 JavaScript 文件即可:
<script src="node_modules/mark.js-clone/dist/mark.js"></script>
创建 mark.js-clone
创建 mark.js-clone 的方法也很简单。我们需要创建一个 Mark 函数,并且需要给这个函数传递两个参数:要搜索的关键字和用于高亮的 CSS 样式。
const mark = new Mark(document.querySelector('.my-html'), { keyword: 'hello', className: 'highlight' });
在上面的例子中,我们创建了一个名为 mark
的 Mark 函数,它将搜索名为 my-html
的元素中的关键字 hello
并将其用 highlight
样式进行高亮。
执行搜索和高亮
最后,我们需要执行搜索和高亮的过程。我们可以为 Mark 实例调用 mark
方法来执行搜索和高亮。
mark.mark();
现在,如果页面上包含关键字 hello
,就会用 highlight
样式进行高亮。
mark.js-clone 的深度和学习意义
mark.js-clone 是很实用的一个 npm 包,因为它能够让我们轻松地实现关键字高亮功能。同时,通过阅读 mark.js-clone 的源代码,我们还能学习到很多有关 JavaScript 和 DOM 操作方面的技术,这对于我们的前端开发技能提升也是很有帮助的。
示例代码
-- -------------------- ---- ------- --------- ----- ------ ------ ----- --------------- -- -------------------- --------------- ------- ------------------------------------------------------- ------- ------ ---- ---------------- --- ----- ------ ---- --- ----- ----- ----- --- ----- ----------- ---------- ----- -- ------- ------ --- --------- ------- ----- -- ----- -- ----- -------- ------- --- --------- ----- ---- ------- ---------- ----- -- ----------- ------ -- -------- ------- -- ------- ----- -- -------- ------- --- --------- ------------ -------- ------------ -------- ----- --- -------- ------- ----- -------- ---- -- ------------ ----------- ------- --- ---- ---- --------- -- --------- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- --------- ----- - ------------------------------------------------------------------------------ -------- ------------------------------------------------------------------------------------------------------------------------