我将一些代码从使用jQuery v1.11.2的项目复制到使用v3.1.0的新项目,并且以下代码行不起作用。我在控制台得到一个无法识别的表达错误:JQuery无法识别的表达式包含选择器
$('#createEditTabs a[data-target=#tabEditConfig]').tab('show');
这条线在旧的项目能正常工作,但无法在新更新的一个工作。不确定使用包含选择器时,为什么或者如果v3.1.0有一些差异。
我将一些代码从使用jQuery v1.11.2的项目复制到使用v3.1.0的新项目,并且以下代码行不起作用。我在控制台得到一个无法识别的表达错误:JQuery无法识别的表达式包含选择器
$('#createEditTabs a[data-target=#tabEditConfig]').tab('show');
这条线在旧的项目能正常工作,但无法在新更新的一个工作。不确定使用包含选择器时,为什么或者如果v3.1.0有一些差异。
用引号将属性值换行以避免#
开头的问题。
$('#createEditTabs a[data-target="#tabEditConfig"]').tab('show');
// -^-- --^-
的属性值应该是一个valid identifier或引用字符串。在你的代码中,它不是valid identifier(包含#
),所以使用带引号的字符串。
完美!谢谢。它必须是一些额外的验证添加到jQuery的更高版本,然后我猜。堆栈溢出让我在5分钟内接受它会接受你的答案。 – NiallMitch14
@ NiallMitch14:很高兴帮助:) –
@ NiallMitch14我不相信最近任何东西都改变了属性选择器。这更可能是您正在使用的浏览器的QuerySelector/QuerySelectorAll实现的修正。 –
你需要引用属性值'[data-target =“#tabEditConfig”]' – billyonecan