2016-08-15 68 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實現的修正。 –

相關問題