【发布时间】:2011-08-22 18:51:45
【问题描述】:
所以,这是我正在尝试完成的一件相当简单的事情(javascript),但这需要我很长时间,但它仍然无法正常工作。我正在尝试替换某些单词(在 pre 标签内)。例如,单词"static" 应替换为
"<span class="keyword">static</span>"。我使用的是严格的 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>");
}
codeBlock 是前置元素,keywords 是一个数组,包含我要替换的所有单词。
我尝试了很多方法,但总是遇到这样的错误消息。
火狐:
[异常...“指定了无效或非法字符串”代码:“12”nsresult:“0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)”位置:“file:///C:/.../scripts.js 行: 33"]
铬:
错误:INVALID_STATE_ERR:DOM 异常 11
我猜它与 html 标签有关(我尝试使用 %lt; 和 %gt; 代替),因为我知道这确实有效:
codeBlock.innerHTML = codeBlock.innerHTML.replace(新 RegExp(keywords[j], "g"), "test");
感谢您的宝贵时间, 雅克
【问题讨论】:
-
我认为您不能将(设置)
innerHTML与 XHTML(严格)一起使用。 -
您是否有机会发布一个完整的 html 和 javascript 示例来展示此问题?
标签: javascript xhtml replace innerhtml