jQuery Sizzle 语法错误 - 未捕获的表达式

标签 jquery sizzle

我从 jQuery 1.6(不记得确切的版本)迁移到 jQuery 3.3.1,并且在以下代码中遇到错误:

//datatable row click events
$('#@mainDatatableName tbody').on('click', 'tr', function () {
    checkForChange('#details-box', function () {
        //this will enable details refresh
        $('#detailsTab1 #Id').val(0); 

        debugger

        //force active detail to reload
        $('a[data-target=' + currentActiveTabContentId + ']').click();
    });
});

语法错误如下:

jquery-3.3.1.js:1541 Uncaught Error: Syntax error, unrecognized expression: a[data-target=#detailsTab1]
at Function.Sizzle.error (jquery-3.3.1.js:1541)
at Sizzle.tokenize (jquery-3.3.1.js:2193)
at Sizzle.select (jquery-3.3.1.js:2620)
at Function.Sizzle [as find] (jquery-3.3.1.js:845)
at jQuery.fn.init.find (jquery-3.3.1.js:2873)
at new jQuery.fn.init (jquery-3.3.1.js:2983)
at jQuery (jquery-3.3.1.js:139)
at UsersAdmin:1696
at checkForChange (domis.common.js:43)
at HTMLTableRowElement.<anonymous> (UsersAdmin:1693)

我不明白为什么会出现此错误。在以前的 jQuery 版本中,这个错误没有出现,并且代码可以正常工作。新的 jQuery 版本中的语法是否有变化或者其他什么变化?

最佳答案

您需要在选择器中的 data-target 值上加引号

$('a[data-target="' + currentActiveTabContentId + '"]').click();

关于jQuery Sizzle 语法错误 - 未捕获的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51890159/

相关文章:

javascript - Polymer querySelector 在 dom-repeat 中找不到元素

javascript - 如何使用 Highchart 自动计算最小值和最大值,除非它们高于或低于预定义的最小值和最大值

jQuery a[href=#/example] 未选择所有匹配的 anchor - 跨浏览器问题

css - 从元素中获取 css 选择表达式

javascript - 寻找有关 jQuery 选择器引擎内部实现的信息(嘶嘶声)

javascript - 有没有办法验证 Sizzle 选择器?

javascript - 如何在数组中使用 jQuery 绑定(bind)或 addEventListener?

javascript - 使用 Javascript 将下载功能添加到点击事件

jQuery 从相同的类名中选择第一个对象

javascript - 缩小的嘶嘶声