谢谢切坦·萨斯特里 https://stackoverflow.com/users/31284/chetan-sastry我有这个正则表达式代码来解析我的页面以获取单词列表并将 TM 添加到其中。
var wordList = ["jQuery UI", "jQuery", "is"];
var regExp = new RegExp("\\b" + wordList.join("\\b|\\b") + "\\b", "g");
var $elem = $("#divWithText");
$elem.html($elem.html().replace(regExp, "$&™"));
这个正则表达式几乎就是我所需要的。
然而,有一个看起来像这样的链接:
<a href="/0/products/jQuery">jQuery</a>
它最终将 TM 附加到 href 内部的 jQuery,而不是标签之间的 jQuery。
有人可以帮忙解决这个问题吗?
我要查找的单词列表是非常具体的产品名称,它们可能出现在标签内的唯一位置是像这样的链接内。
唯一的reliable实现此目的的方法是逐步遍历每个子后代,如果它是文本节点,则运行替换。
实施:
- http://benalman.com/projects/jquery-replacetext-plugin/ http://benalman.com/projects/jquery-replacetext-plugin/
- http://james.padolsey.com/javascript/find-and-replace-text-with-javascript/ http://james.padolsey.com/javascript/find-and-replace-text-with-javascript/
按照您的方式进行操作,您不仅会冒着无意中替换实际 HTML 的风险,而且还会擦除目标元素中的任何 DOM 元素以及任何相应的事件处理程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)