【问题标题】:jQuery - how to find an element with square brackets in its ID attr? [duplicate]如何使用 jQuery 查找 ID 中带有方括号的元素? [复制]
【发布时间】:2017-03-16 02:48:03
【问题描述】:

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

【问题讨论】:

  • $('[id*="services[3490][selected]"')" 之后缺少结束]。那是准确的吗?即使这样也能正常工作?

标签: javascript jquery unicode


【解决方案1】:

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

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


来自jQuery selecctors 文档:

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

【讨论】:

    【解决方案2】:

    每个 jquery documentation,

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

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

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

    【讨论】:

      【解决方案3】:

      您需要对id 选择器中的方括号进行转义,以免它们被解释为属性选择器:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多