【发布时间】:2010-11-29 11:41:34
【问题描述】:
我试图弄清楚如何用 Javascript 进行替换。我正在查看页面的整个正文,并想替换 HTML 标记中不匹配的关键字。
这是一个例子:
<body>
<span id="keyword">blah</span>
<div>
blah blah keyword blah<br />
whatever keyword whatever
</div>
</body>
<script type="text/javascript">
var replace_terms = {
'keyword':{'url':'http://en.wikipedia.org/','target':'_blank'}
}
jQuery.each(replace_terms, function(i, val) {
var re = new RegExp(i, "gi");
$('body').html(
$('body').html().replace(re, '<a href="'+ val['url'] +'" target="'+val['target']+'">' + i + '</a>')
);
});
</script>
我希望替换不在 HTML 标记内(< 和 > 之间)的所有“关键字”实例。
如果“关键字”在 script 或 style 元素内,我想我也需要忽略。
【问题讨论】:
-
根据定义,整个页面不是在 HTML 标记内吗?
-
是的。我在示例中的 HTML 没有通过。我的意思是我不想替换标签的任何属性。
-
我认为他的意思是在括号内(如属性名称/值)。
-
在标签中是在之间。在 和 > 之间将在一个元素中:)
标签: javascript regex dom