首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery语法错误未识别表达式

jquery语法错误未识别表达式
EN

Stack Overflow用户
提问于 2020-11-13 10:31:59
回答 1查看 46关注 0票数 0

我很难弄明白为什么我的表情不被人认出来。

我的html元素如下所示:

代码语言:javascript
复制
<tr class="beampower_01/target_surface_01-child shown">(...)</tr>

我试着用表情来访问:

代码语言:javascript
复制
$('.' + $(elemClicked).attr("path")+ '-child');

表达方式:

代码语言:javascript
复制
console.log($(elemClicked).attr("path"))

成果如下:

发射功率_01/目标表面_01

我收到的错误是:

未明错误:语法错误,无法识别的表达式:..beampower_01/target_surface_01-子

错误在哪里?

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 10:39:33

虽然beampower_01/target_surface_01-child是放置元素的有效类名(请参阅这里这里),但.beampower_01/target_surface_01-child是无效的CSS类选择器。类选择器中的类名必须是CSS 标识符

在CSS中,标识符(包括选择器中的元素名称、类和in )只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及更高的字符,加上连字符(-)和下划线(_);它们不能以数字、两个连字符或连字符后面的数字开始。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符"B&W?“可以写成"B&W?“或“B26W3F”。

(这是旧的2.1规范中的语言,它便于引用。有效字符没有改变,参见现代规范中的https://www.w3.org/TR/css-syntax-3/#identifierhttps://www.w3.org/TR/css-syntax-3/#ident-token-diagram

你不可能有这样一个未逃脱的斜杠。

我强烈建议不要在类名中使用斜杠,这样您就不必试图逃避它们。但是,您可以通过在前面添加反斜杠来逃避它们:

代码语言:javascript
复制
$('.' + $(elemClicked).attr("data-path").replace(/\//g, "\\/") + '-child')

活生生的例子:

代码语言:javascript
复制
$("input[type=button]").on("click", function() {
    const elemClicked = this;
    $('.' + $(elemClicked).attr("data-path").replace(/\//g, "\\/") + '-child')
.css("color", "blue");
});
代码语言:javascript
复制
<table>
    <tbody>
          <tr class="beampower_01/target_surface_01-child shown">
              <td>Hi there</td>
          </tr>
    </tbody>
</table>

<input type="button" data-path="beampower_01/target_surface_01" value="Click me">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64819341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档