散列选择函数在jQuery中抛出错误

时间:2017-05-23 12:47:03

标签: 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
 },
};

2 个答案:

答案 0 :(得分:3)

您的选择器中有太多'

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

  

未捕获错误:语法错误,无法识别的表达式:{

,而您的错误是:

  

未捕获错误:语法错误,无法识别的表达式:'#o1w609accordion'

所以你的翻译表达是:

$("'#o1w609accordion'")

删除额外的',你应该没问题,可能:

$(`${hash}`)

答案 1 :(得分:1)

尝试

$('#'+hash).css('display','block');

您的问题出在选择器