我想弄清楚如何用Javascript进行替换。我正在查看页面的整个主体,并希望替换HTML标记内的关键字NOT。在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标记内? – 2009-09-18 12:59:53
是的。我的例子中的HTML没有通过。我基本上是指我不想替换标签的任何属性。 – Phil 2009-09-18 13:01:49
我在想他是指在括号内(如属性名称/值)。 – Mayo 2009-09-18 13:01:51