2016-08-15 67 views
2

我将一些代码从使用jQuery v1.11.2的项目复制到使用v3.1.0的新项目,并且以下代码行不起作用。我在控制台得到一个无法识别的表达错误:JQuery无法识别的表达式包含选择器

$('#createEditTabs a[data-target=#tabEditConfig]').tab('show'); 

这条线在旧的项目能正常工作,但无法在新更新的一个工作。不确定使用包含选择器时,为什么或者如果v3.1.0有一些差异。

+0

你需要引用属性值'[data-target =“#tabEditConfig”]' – billyonecan

回答

4

用引号将属性值换行以避免#开头的问题。

$('#createEditTabs a[data-target="#tabEditConfig"]').tab('show'); 
//        -^--   --^- 

的属性值应该是一个valid identifier或引用字符串。在你的代码中,它不是valid identifier(包含#),所以使用带引号的字符串。

+0

完美!谢谢。它必须是一些额外的验证添加到jQuery的更高版本,然后我猜。堆栈溢出让我在5分钟内接受它会接受你的答案。 – NiallMitch14

+0

@ NiallMitch14:很高兴帮助:) –

+1

@ NiallMitch14我不相信最近任何东西都改变了属性选择器。这更可能是您正在使用的浏览器的QuerySelector/QuerySelectorAll实现的修正。 –

相关问题