JS在用户输入单引号时中断
JS Breaks when user inputs a single quote
>我有一个带有<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
这是没有意义的,因为第一行测试中的代码.html是<!DOCTYPE html>
我将如何修复此错误?
在 HTML 中使用 '
代替单词 did 中的单引号。
您可以在 mark
元素渲染到 dom 后将其删除。
然后在你的函数中像这样:
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]);
}
}
看看这是否有效。
相关文章:
- Javascript/jQuery:用HTML span标记替换单引号中的文本
- 删除单引号字符转义
- 将字符串中的单引号替换为双引号
- JavaScript:单引号'导致错误
- 如何通过HTML将带有单引号的JSON从PHP传递到Javascript
- 如何在java脚本中用单引号写逗号分隔的值
- 使用jquery或regex,带点但不带点的拆分字符串位于单引号中
- 用空格替换单引号和其他符号
- javascript单引号/双引号
- 如何在字符串输入的 Html 元素中的双引号内编写单引号
- 使用javascript为#、单引号和双引号编码值
- JavaScript 相等操作对单引号字符串和数字都成功
- 对字符串使用单引号或双引号
- 如何在javasciipt中添加单引号到字符串,该字符串将在nodeJS中作为mysql插入命令执行
- JavaScript:当存在单引号时,用于替换双花引号的正则表达式失败
- 单引号 JSP 到 JavaScript 函数
- 在文本区域中,输入用jquery str.replacement()替换哭泣的smiley live的单引号
- Javascript 正则表达式将括号和单引号替换为斜杠
- 如何在javascript中的eval函数中添加单引号
- JS在用户输入单引号时中断