我正在使用 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 转换。
您需要使用
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
来转义 jQuery 选择器中的元字符(例如 \\
)。
$('#services\\[3490\\]\\[selected\\]')
来自 jQuery 选择器 文档:
要使用任何元字符(例如
)作为名称的文字部分,必须使用两个反斜杠对其进行转义:!"#$%&'()*+,./:;<=>?@[\]^`{|}~
。例如,具有\\
的元素可以使用选择器id="foo.bar"
。 W3C CSS 规范包含有关有效 CSS 选择器的完整规则集。同样有用的是 Mathias Bynens 的关于 CSS 标识符字符转义序列的博客文章。$("#foo\\.bar")
每个 jquery 文档,
要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须用两个反斜杠转义:\.
要在第一个示例中使用括号,我相信您的选择器需要:
$('#services\\[3490\\]\\[selected\\]')
您需要转义
id
选择器中的方括号,这样它们就不会被解释为属性选择器:
$('#services\\[3490\\]\\[selected\\]')