如何使用jQuery在其ID中查找带方括号的元素?

时间:2016-11-02 17:14:57

标签: javascript jquery unicode

我正在使用jQuery,我有这个元素:

<input class="css-checkbox" id="services[3492][selected]" name="services[3492][selected]" type="checkbox" value=" 1">

当我尝试通过其ID - services[3492][selected]在我的控制台中获取该项目时,我得到一个空响应:[]

代码:

$('#services[3490][selected]') // Not working
$('[id*="services[3490][selected]"') // Working

我认为这是因为[个字符。也许我需要清理,或使用一些转义字符或unicode转换。

3 个答案:

答案 0 :(得分:4)

您需要使用!"#$%&'()*+,./:;<=>?@[\]^{|}~在jquery选择器中转义元字符(例如\\)。

$('#services\\[3490\\]\\[selected\\]')

<小时/> 来自jQuery selecctors文档:

  

要使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^ {|}〜`)作为名称的文字部分,必须使用两个反斜杠进行转义:\。例如,id =&#34; foo.bar&#34;的元素可以使用选择器$(&#34; #foo \ .bar&#34;)。 W3C CSS规范包含complete set of rules regarding valid CSS selectors。同样有用的是Mathias Bynens在CSS character escape sequences for identifiers上的博客文章。

答案 1 :(得分:4)

每个jquery documentation

  

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

要在第一个示例中使用括号,我相信您的选择器必须是:

$('#services\\[3490\\]\\[selected\\]')

答案 2 :(得分:3)

您需要转义id选择器中的方括号,以便它们不会被解释为属性选择器:

$('#services\\[3490\\]\\[selected\\]')