在为元素指定类名时转义方括号

Dun*_*can 41 jquery

有没有人知道如何在使用jQuery设置类名时转义方括号字符?

请尝试以下方法:

$('#txtFirstname').addClass('test[someval]')
Run Code Online (Sandbox Code Playgroud)

然后

$('#txtFirstname').attr('class')
Run Code Online (Sandbox Code Playgroud)

你会看到班级在那里.

现在试试

$('#txtFirstname').hasClass('test[someval]')
Run Code Online (Sandbox Code Playgroud)

失败

我能想到的唯一原因是方括号.

我需要这些用于我看到的jQuery验证.

任何建议赞赏

干杯邓肯

Dun*_*can 82

并且,他搜索了12个小时的答案,放弃并在SO上发布了一个问题,然后在2秒内找到答案.

我会把它放在这里给其他不那么幸运的灵魂.

用两(2)个反斜杠逃生.

http://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/

  • 两个反斜杠只是因为JavaScript字符串转义.实际上,正确地说,你发送给jQuery本身就是一个反斜杠. (9认同)
  • 对于`<span id ="foo [bar]"/>`,您可以选择`$("#foo \\ [bar \\]")`,如上所述,或`$('[id ="foo [bar ]"]')`使用[属性等于选择器](http://api.jquery.com/attribute-equals-selector/) (8认同)

dig*_*ogo 9

jQuery API页面的介绍给出了上面的解释:

要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\\.