javascript - 未捕获的错误:语法错误,无法识别的表达式 - JQuery 3.2.1
问题描述
JQuery 3.2.1 抛出以下错误
jquery-3.2.1.min.js:2 Uncaught Error: Syntax error, unrecognized expression: #row_L&TFH
at Function.ga.error (jquery-3.2.1.min.js:2)
at ga.tokenize (jquery-3.2.1.min.js:2)
at ga.select (jquery-3.2.1.min.js:2)
at Function.ga [as find] (jquery-3.2.1.min.js:2)
at r.fn.init.find (jquery-3.2.1.min.js:2)
at new r.fn.init (jquery-3.2.1.min.js:2)
at r (jquery-3.2.1.min.js:2)
at Object.success (allocate.js:84)
at i (jquery-3.2.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2)
在以下代码行
$('#row_'+code).remove();
当代码中包含“&”时会引发错误。例如:code = "L&TFH" 它会引发错误,但当 code = "ABB" 时不会。
解决方案
当 id 值不是“标识符”时,您必须引用不符合该语法的字符。因此"#row_L&TFH"
不会工作,但"#row_L\\&TFH"
会。
你可以用
$('#row_' + code.replace(/[^0-9A-Za-z_]/g, "\\$0")).remove();
这不仅适用于 id 值,也适用于类名。id 或类名包含非标识符字符并非无效,但您必须在 CSS 选择器中使用显式表示法来引用它们。这类似于在 JavaScript 中对象属性名称可以是任何字符串,但除非它是标识符,否则您必须使用[ ]
带有字符串的符号来访问或设置属性值。
推荐阅读
- swiftui - 当按钮靠在一起时,SwiftUI NavigationLink 行为不正确
- python - Allennlp 德国 elmo 模型
- substrate - 如何实现以太坊虚拟机托盘?
- python-3.x - 如何在 Python 中的 Pandas Dataframe 中将 123456.654321 更改为 12:34:56:654321
- reactjs - 如何在 ReactJS 中获取当前路径
- c# - WebApi 返回 json 与返回 OK(json)
- css - css3变换比例的RangeSlider问题
- excel - 下载C盘文件名到指定文件夹
- c - C 代码在 linux 上完美运行,但在 MacOS 上却不行
- spring-boot - 两小时后springboot关机