jQuery - 如何查找 ID 属性中带有方括号的元素? [重复]

问题描述 投票:0回答:3

我正在使用 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 转换。

javascript jquery unicode
3个回答
6
投票

您需要使用

!"#$%&'()*+,./:;<=>?@[\]^`{|}~
来转义 jQuery 选择器中的元字符(例如
\\
)。

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

来自 jQuery 选择器 文档:

要使用任何元字符(例如

!"#$%&'()*+,./:;<=>?@[\]^`{|}~
)作为名称的文字部分,必须使用两个反斜杠对其进行转义:
\\
。例如,具有
id="foo.bar"
的元素可以使用选择器
$("#foo\\.bar")
。 W3C CSS 规范包含有关有效 CSS 选择器的完整规则集。同样有用的是 Mathias Bynens 的关于 CSS 标识符字符转义序列的博客文章。


4
投票

每个 jquery 文档

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

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

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


3
投票

您需要转义

id
选择器中的方括号,这样它们就不会被解释为属性选择器:

$('#services\\[3490\\]\\[selected\\]')
© www.soinside.com 2019 - 2024. All rights reserved.