栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用正则表达式和JavaScript突出显示html中的单词-几乎存在

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用正则表达式和JavaScript突出显示html中的单词-几乎存在

只需使用jQuerys内置

text()
方法。它将返回所选DOM元素中的所有字符。

对于DOM方法针对

Node
接口的文档:在元素的所有子节点上运行。如果子节点是元素节点,则以递归方式运行。如果是文本节点,请搜索文本(
node.data
),如果要突出显示/更改某些内容,请将该节点的文本缩短到找到的位置,然后插入带有匹配文本的highligth-
span,其余部分插入另一个文本节点的文字。

(function iterate_node(node) {    if (node.nodeType === 3) { // Node.TEXT_NODE        var text = node.data, pos = text.search(/any regular expression/g), //indexOf also applicable length = 5; // or whatever you found        if (pos > -1) { node.data = text.substr(0, pos); // split into a part before... var rest = document.createTextNode(text.substr(pos+length)); // a part after var highlight = document.createElement("span"); // and a part between highlight.className = "highlight"; highlight.appendChild(document.createTextNode(text.substr(pos, length))); node.parentNode.insertBefore(rest, node.nextSibling); // insert after node.parentNode.insertBefore(highlight, node.nextSibling); iterate_node(rest); // maybe there are more matches        }    } else if (node.nodeType === 1) { // Node.ELEMENT_NODE        for (var i = 0; i < node.childNodes.length; i++) { iterate_node(node.childNodes[i]); // run recursive on DOM        }    }})(content); // any dom node


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614913.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号