jQuery - 如何查找具有方括号的ID属性的元素?

4

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


1
$('[id*="services[3490][selected]"') 缺少一个 ]" 后面。这是否准确,即使如此也能正常工作? - doppelgreener
3个回答

5

在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\\]')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接