Javascript 替换innerHTML中的字符串
所以,这是我试图完成的一件相当简单的事情(javascript),但它花费了我很多时间,而且仍然不起作用。我试图替换某些单词(在pre标记中)。例如,单词Javascript 替换innerHTML中的字符串,javascript,xhtml,replace,innerhtml,Javascript,Xhtml,Replace,Innerhtml,所以,这是我试图完成的一件相当简单的事情(javascript),但它花费了我很多时间,而且仍然不起作用。我试图替换某些单词(在pre标记中)。例如,单词“static”应替换为 “静态”。我使用的是XHTML 我的方法是这样的: for (var j = 0; j < keywords.length; j++) { codeBlock.innerHTML = codeBlock.innerHTML.replace(new RegExp(keywords[j], "
“static”
应替换为
“静态”
。我使用的是XHTML
我的方法是这样的:
for (var j = 0; j < keywords.length; j++)
{
codeBlock.innerHTML = codeBlock.innerHTML.replace(new RegExp(keywords[j], "g"), "<span class=\"keyword\">" + keywords[j] + "</span>");
}
for(var j=0;j
codeBlock是前置元素,keywords是一个数组,其中包含我要替换的所有单词
我已经尝试了很多方法,但我总是遇到这样的错误消息
火狐:
[异常…”指定了无效或非法字符串“代码:”12“nsresult:“0x8053000c(NS\u错误\u DOM\u语法\u错误)”位置:file:///C:/.../scripts.js 第33行“]
铬:
错误:无效\u状态\u错误:DOM异常11
我猜这与html标记有关(我尝试使用%lt;和%gt;),因为我知道这是可行的:
codeBlock.innerHTML=
codeBlock.innerHTML.replace(新的
RegExp(关键字[j],“g”),“test”)
谢谢你抽出时间,
Jacco您需要将代码包装在CDATA中
<script type="text/javascript">
//<![CDATA[
for (var j = 0; j < keywords.length; j++)
{
codeBlock.innerHTML = codeBlock.innerHTML.replace(new RegExp(keywords[j], "g"), "<span class=\"keyword\">" + keywords[j] + "</span>");
}
//]]>
</script>
//
这样,就不会对代码进行XHTML有效性分析
您当前的代码在上对我来说很好,我认为您不能将(set)
innerHTML
与XHTML(严格)结合使用。您是否有可能发布一个完整的html和javascript示例来展示这个问题?谢谢,但我的脚本位于单独的.js文件中。这似乎没有什么区别。@Jacco,你使用什么浏览器(和版本)?谷歌Chrome 11.0.696.65火狐4.0.1Oh!我刚刚注意到我的数组中有“class”这样的词,这对span标记中的class属性肯定没有帮助。谢谢你的帮助。