Javascript 未捕获错误:语法错误,无法识别的表达式Jquery选择器单引号与双引号

Javascript 未捕获错误:语法错误,无法识别的表达式Jquery选择器单引号与双引号,javascript,jquery,Javascript,Jquery,在测试我正在构建的站点时,当我在页面上滚动时,我会保留此错误:未捕获错误:语法错误,无法识别的表达式 我有一个高亮度导航单页网站。我知道错误是由ID和quote语法引起的。我还知道,从jQuery1.5开始,引用属性值是必须的,可以使用单引号或双引号引用。但考虑到这一点,我无法通过尝试单引号和双引号的不同变体来消除错误。为什么在滚动页面时,此错误会一直出现 来自Jquery的错误是一个sizzle错误 for (var i=0; i < aArray.length; i++)

在测试我正在构建的站点时,当我在页面上滚动时,我会保留此错误:未捕获错误:语法错误,无法识别的表达式

我有一个高亮度导航单页网站。我知道错误是由ID和quote语法引起的。我还知道,从jQuery1.5开始,引用属性值是必须的,可以使用单引号或双引号引用。但考虑到这一点,我无法通过尝试单引号和双引号的不同变体来消除错误。为什么在滚动页面时,此错误会一直出现

来自Jquery的错误是一个sizzle错误

      for (var i=0; i < aArray.length; i++) {
          var theID = aArray[i];
          var divPos = $(theID).offset().top - 200; // get the offset of the div from the top of page
          var divHeight = $(theID).height(); // get the height of the div in question
          if (windowPos >= divPos && windowPos < (divPos + divHeight)) {
              $("a[href='"+ theID +"']").addClass("nav-active");
          } else {
              $("a[href='"+ theID +"']").removeClass("nav-active");
          }
      }

     // $('html, body').animate({scrollTop: $('faq').offset().top -600 });


      if(windowPos + windowHeight == docHeight) {
          if (!$("div li:last-child a").hasClass("nav-active")) {
              var navActiveCurrent = $("nav-active").attr("href");
              $("a[href='"+ navActiveCurrent+ "']").removeClass("nav-active");
              $("div li:last-child a").addClass("nav-active");
          }
      }
  });
for(变量i=0;i=divPos&&windowPos<(divPos+divHeight)){
$(“a[href=”“+theID+”)).addClass(“nav活动”);
}否则{
$(“a[href=”“+theID+”]”)removeClass(“导航活动”);
}
}
//$('html,body').animate({scrollTop:$('faq').offset().top-600});
如果(窗口位置+窗口高度==8){
if(!$(“div li:最后一个孩子a”).hasClass(“导航活动”)){
var navActiveCurrent=$(“nav active”).attr(“href”);
$(“a[href='”+navActiveCurrent+“']”)。removeClass(“nav active”);
$(“div li:last child a”).addClass(“nav active”);
}
}
});

我通过取出
变量divHeight=$(theID).height()解决了这个错误
并添加一个关于divPosid长度的if语句

此外,我还使用了常规标题,以确保只有我的粘性标题具有
  • 标记。该错误是由于列表项标记中有我的常规标题造成的。这个答案也帮助我明白了这一点:

    $(窗口)。滚动(函数(){
    var windowPos=$(window.scrollTop();//获取窗口从页面顶部的偏移量
    var windowHeight=$(window.height();//获取窗口的高度
    var docHeight=$(document).height();
    对于(var i=0;i=divPos&&windowPos<(divPos+divHeight)){
    $(“a[href=”“+theID+”)).addClass(“nav活动”);
    }否则{
    $(“a[href=”“+theID+”]”)removeClass(“导航活动”);
    }
    }
    如果(窗口位置+窗口高度==8){
    if(!$(“div li:最后一个孩子a”).hasClass(“导航活动”)){
    var navActiveCurrent=$(“.nav active”).attr(“href”);
    $(“a[href='”+navActiveCurrent+“']”)。removeClass(“nav active”);
    $(“div li:last child a”).addClass(“nav active”);
    }
    }
    });
    
    HTML中是否有
    nav active
    标记?此处:
    …=$(“导航激活”).attr(“href”)
    ,一个丢失的点?@Teemu我在html中有一个nav活动标记,谢谢你捕捉到丢失的点。我已经在本地添加了它,但错误仍然存在。我怀疑它是一个有效的标记名,而不是一个类名。没有评论的部分怎么样,还有另一个(
    faq
    )?我无法说服代码中的任何东西触发那个错误。你能创建一个复制问题的模型吗?@Teemu对不起,你是对的。nav active是类名。在这一行中:var divPos=$(theID).offset().top-200;当我拿出.top-200时;错误停止了。我猜这意味着theID是未定义的?不确定这到底是为什么解决了这个错误,但它确实解决了。
    $(window).scroll(function(){
          var windowPos = $(window).scrollTop(); // get the offset of the window from the top of page
          var windowHeight = $(window).height(); // get the height of the window
          var docHeight = $(document).height();
    
          for (var i=0; i < aArray.length; i++) {
              var theID = aArray[i];
              var divPosid = $(theID);
                  if (!divPosid.length) {
                      return;
                  }
                  var divPos = divPosid.offset().top - 200; // get the offset of the div from the top of page
    
              var divHeight = $(theID).height(); // get the height of the div in question
              if (windowPos >= divPos && windowPos < (divPos + divHeight)) {
                  $("a[href='"+ theID +"']").addClass("nav-active");
              } else {
                  $("a[href='"+ theID +"']").removeClass("nav-active");
              }
          }
    
    
          if(windowPos + windowHeight == docHeight) {
              if (!$("div li:last-child a").hasClass("nav-active")) {
                  var navActiveCurrent = $(".nav-active").attr("href");
                  $("a[href='"+ navActiveCurrent+ "']").removeClass("nav-active");
                  $("div li:last-child a").addClass("nav-active");
              }
          }
      });