JS加亮文章内容指定的关键字现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示..
文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...不知道怎样来实现这样的功能?
方法一:<利用Replace替换>简单的例子:
<div id="txt">用JS让文章内容指定的关键字加亮<br /><br />
是这样的..<br />
现在有这些关键字:美容,生活,购物<br />当在文章里头出现这些关键字,就把它加亮显示..<br /><br />
文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...<br />不知道怎样来实现这样的功能啊?特此求助<br /></div><script language="JavaScript">txt.innerHTML = txt.innerHTML.replace(/文章/gi,"<font color=red>文章</font>");</script>
扩展的多个关键字程序
<div id="txt">用JS让文章内容指定的关键字加亮<br /><br />
是这样的..<br />
现在有这些关键字:美容,生活,购物<br />当在文章里头出现这些关键字,就把它加亮显示..<br /><br />
文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...<br />不知道怎样来实现这样的功能啊?特此求助<br /></div><script language="JavaScript">txt.innerHTML = txt.innerHTML.replace(/(文章)|(关键字)|(功能)/gi,"<font color=red>$1$2$3</font>");</script>
说明:字符 含义 $$ $ (JScript 5.5 或更新版本) $& 指定与整个模式匹配的 stringObj 的部分。 (JScript 5.5 或更新版本) $` 指定由 $& 描述的匹配之前的 stringObj 部分。 (JScript 5.5 或更新版本) $' 指定由 $& 描述的匹配之后的 stringObj 部分。 (JScript 5.5 或更新版本) $n 捕获的第 n 个子匹配,此处 n 为从1到9的十进制一位数。 (JScript 5.5 或更新版本) $nn 捕获的第 nn 个子匹配,此处 nn 为从01到99的十进制两位数。 (JScript 5.5 或更新版本) g,全局模式匹配i,不区分大小写匹配相关知识:操作document.body的innerHTML此法将引起浏览器DOM重新解析
方法二:引用大家为什么非要局限在 HTML 的替换上呢,从文本对象入手不是更方便一些吗?
不管有多少关键字也不会受正则的局限,说实在的,正则不是用来干这事的。<pre>用JS让文章内容指定的关键字加亮
是这样的..
现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示..
文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...不知道怎样来实现这样的功能啊?特此求助</pre>
<script language="JavaScript">function highlight(key) {var key = key.split('|');for (var i=0; i<key.length; i++) {var rng = document.body.createTextRange();//FireFox不支持while (rng.findText(key[i]))rng.pasteHTML(rng.text.fontcolor('red'));}}highlight('文章|关键|功能')</script>