【问题标题】:inconsistent behaviour in jQuery selector [duplicate]jQuery选择器中的不一致行为[重复]
【发布时间】:2018-05-17 22:24:15
【问题描述】:
$('#a.b') // doesn't work

document.getElementById('a.b') // works

$('[id="a.b"]') // works

谁能解释为什么$('#a.b') 不起作用。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

在使用 Jquery 时不要在您的 ID 中使用元字符。

. 是一个元字符,选择器将它们视为正则表达式。你需要逃跑才能让它工作。对于前\\.

在这种情况下 -

$('#a\\.b')

Javascript getElementById 也可以工作,因为它只是一个字符串。

当您作为id="a.b" 提供时,它会检查一个值并且不会被视为元字符。

【讨论】:

    【解决方案2】:

    您应该按如下方式使用转义运算符:

    $('#a\\.b')
    

    jQuery 不允许元字符作为名称的文字部分,必须用两个反斜杠 \\ 转义。

    【讨论】:

      【解决方案3】:

      jQuery 认为它是一个类。因此,您使用转义序列将其编写为 -

      $('#a\\.b')
      

      【讨论】:

        猜你喜欢
        • 2020-12-14
        • 1970-01-01
        • 2015-09-09
        • 2017-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        相关资源
        最近更新 更多