【问题标题】:Jquery: Error: Syntax error, unrecognized expression: [name=someVar]Jquery:错误:语法错误,无法识别的表达式:[name=someVar]
【发布时间】:2012-02-17 19:12:16
【问题描述】:

足够简单的代码:

$("meta[name=DCSext.Level]")

错误:

Error: Syntax error, unrecognized expression: [name=DCSext.Level]

我在 Jquery 中从 1.4.2 升级到 1.7.1。它显然在 1.4.2 中仍然有效。

有什么想法吗?

【问题讨论】:

    标签: jquery meta


    【解决方案1】:

    语法应为[name="DCSext.Level"],如jQuery API 中所指定。我建议在 JS 中对字符串使用单引号,这样您就不必转义双引号,我更喜欢将其用于 HTML:

    $('meta[name="DCSext.Level"]')
    

    虽然你可以继续使用双引号:

    $("meta[name=\"DCSext.Level\"]");
    

    你可以交换引用用法:

    $("meta[name='DCSext.Level']");
    

    这当然都是假设属性本身如下:

    <meta name="DCSext.Level" ... />
    

    如果 DCSext 是 JS 对象,则需要将其连接到字符串中:

    $('meta[name="' + DCSext.Level + '"]');
    

    【讨论】:

    • 嗯,令人尴尬的是,即使在查看 api 文档时,我也没有注意到名称周围的引号 ;) 欢呼
    • 他们需要很长时间才能修复.. :p 例如必须针对该问题启动一个线程
    【解决方案2】:

    或者如果 DCSext.Level 是一个变量:

    $('meta[name="' + DCSext.Level + '"]');
    

    【讨论】:

    • 它不是一个 var,但 name='as' 周围的引号是我需要的
    【解决方案3】:

    如果是字符串,你应该添加引号:

    $("meta[name='DCSext.Level']")
    

    或者如果它是可变的:

    $("meta[name='" + DCSext.Level + "']")
    

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 2016-03-21
      • 1970-01-01
      • 2012-08-28
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多