我的网页上有<div></div>
和<p></p>
,<p></p>
内有带标记标记的文字。我想删除那些标记标记,我有一个功能来做到这一点。
页面示例:
<div id="NoteHolder">
<p class="NoteOp">This breaks with single quotes such as in <mark class="YelColBox" style="font-weight: bold;">didn't</mark></p>
</div>
删除标记的JS函数是:
function removeMark(tagName, Color) {
var notes = document.getElementsByClassName("NoteOp");
for (var i = 0; i < notes.length; i++) {
var n = notes[i];
if(window.Bold === "No") {
n.innerHTML = n.innerHTML.replace(new RegExp('<mark class="' + Color +'">(' + tagName + ')</mark>', "gim"), "$1");
}
if(window.Bold === "Yes") {
n.innerHTML = n.innerHTML.replace(new RegExp('<mark class="' + Color +'" style="font-weight: bold;">(' + tagName +')</mark>', "gim"), "$1");
}
}
}
tagName
为didn't
,Color
为YelColBox
。我得到的错误是
Uncaught SyntaxError: missing ) after argument list test.html:1
这没有任何意义,因为test.html第一行的代码是<!DOCTYPE html>
我该如何修复此错误?
答案 0 :(得分:0)
在HTML中使用'
代替单词中的单引号。
答案 1 :(得分:0)
您可以稍后在呈现到dom中删除mark
元素。
然后在你的函数中像这样:
function removeMark(tagName, Color) {
var elements = document.getElementsByTagName('mark');
while(elements.length > 0){
elements[0].parentNode.insertBefore(elements[0].innerHTML, elements[0])
elements[0].parentNode.removeChild(elements[0]);
}
}
看看是否有效。