【问题标题】:after jQuery upgrade, uncaught exception: Syntax error, unrecognized expression: h3jQuery升级后,未捕获的异常:语法错误,无法识别的表达式:h3
【发布时间】:2010-09-08 04:45:23
【问题描述】:

我正在开发新版本的网站,现在发现我的 javascript 代码存在问题,无法很好地处理。

我过去一直在做的是

$('#lb_outer_title :h3').html(title); 

这改变了我的灯箱的标题属性的文本。这在 jQuery 1.3.2 中运行良好,但在新版本(使用 jQuery 1.4.2)上我得到了错误:

uncaught exception: Syntax error, unrecognized expression: Syntax error, unrecognized expression: h3

在新版本中,我可以将代码更改为以下内容,它可以工作,但这不是最佳解决方案:

$('#lb_outer_title').html('<h3>'+ title + '</h3>');

我已经在我的新版本中尝试了 using :first 选择器,但这也不能按预期工作。

这是我正在使用的 html(注意:我无法将 class 或 id 添加到 h3 标签):

 <div id="lb_outer_title">
   <h3>Title</h3>
  </div>

【问题讨论】:

  • 虽然下面的答案纠正了这个问题..如果你的标题有特殊字符,你可能希望它们编码,在这种情况下,你应该用 .text() 加权 .html(),这取决于你坚持什么在那里。

标签: jquery jquery-selectors


【解决方案1】:

你的错误在这里:

$('#lb_outer_title :h3').html(title); 

应该删除h3 之前的冒号。 jQuery 1.4 有一个更严格的选择器引擎,这就是它报告错误的原因(因为您在元素选择器上使用了伪类前缀),而 jQuery 1.3 只是默默地解析冒号。

【讨论】:

    【解决方案2】:
    $('#lb_outer_title h3').html(title); 
    

    不确定那个冒号在那里做了什么...它不是一个有效的选择器。 : 用于伪类,但您只需要一个元素。

    【讨论】:

      【解决方案3】:

      只需像这样删除:

      $('#lb_outer_title h3').html(title); 
      

      冒号前缀:,用于各种pseudo selectors,你只需要h3element selector

      【讨论】:

        猜你喜欢
        • 2011-12-03
        • 1970-01-01
        • 2011-11-13
        • 2013-10-10
        • 2017-11-24
        • 2011-11-15
        • 2017-06-06
        • 2019-02-18
        • 2015-11-13
        相关资源
        最近更新 更多