我正在使用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转换。
答案 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\\]')