javascript - 哈希选择函数在 jQuery 中抛出错误

标签 javascript jquery ecmascript-6

我想使用 jQuery 将散列用作 ID 选择器,但出现错误:

Uncaught Error: Syntax error, unrecognized expression: '#o1w609accordion'
at Function.fa.error (jquery.js?ver=1.12.4:2)
at fa.tokenize (jquery.js?ver=1.12.4:2)
at fa.select (jquery.js?ver=1.12.4:2)
at Function.fa (jquery.js?ver=1.12.4:2)
at Function.a.find (jquery-migrate.min.js?ver=1.4.1:2)
at n.fn.init.find (jquery.js?ver=1.12.4:2)
at n.fn.init.a.fn.find (jquery-migrate.min.js?ver=1.4.1:2)
at a.fn.init.n.fn.init (jquery.js?ver=1.12.4:2)
at a.fn.init (jquery-migrate.min.js?ver=1.4.1:2)
at n (jquery.js?ver=1.12.4:2)

这是我的 JavaScript 代码。它获取哈希值,然后我想将它用作 ID 选择器。

export default {
init() {
// JavaScript to be fired on all pages

  $(document).ready(function(){
      if(window.location.hash) {
          var hash = window.location.hash;
          $('.accordion').attr('data-accordion','06i9fb-accordion');
          $(`'${hash}'`).css('display','block');
          $('.accordion a[href="' + hash + '"]').trigger('click');
      }
  });
},
 finalize() {
  // JavaScript to be fired on all pages, after page specific JS is fired
 },
};

最佳答案

您的选择器中有太多 '

无法识别的表达式的 jquery 错误是(对于 $("{")):

Uncaught Error: Syntax error, unrecognized expression: {

当你的错误是:

Uncaught Error: Syntax error, unrecognized expression: '#o1w609accordion'

所以你的翻译后的表达是:

$("'#o1w609accordion'")

删除多余的 ' 你应该没问题,可能是:

$(`${hash}`)

关于javascript - 哈希选择函数在 jQuery 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135286/

相关文章:

javascript - 如何轻松地从对象中获取非 getter 属性

javascript - 浏览器插件或扩展程序可以查看页面中运行的 JavaScript 变量的值吗

javascript - 显示模态时锁定父窗口不滚动

jquery - 如果已经在页面上,则使 requireJs 不重新加载 jQuery

javascript - javascript 小部件的样式在没有元视口(viewport)标记的情况下无法缩放

JavaScript 解构

javascript - 类的实例化和排序导致 ES6 中的错误

javascript - 想要 : simple HTML file that does disclosure triangle <div> hide/reveal

javascript - 循环中的套接字 io 和闭包

javascript - 按钮没有响应 JQuery 的点击