Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在jQuery中会出现这个错误?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 为什么在jQuery中会出现这个错误?

Javascript 为什么在jQuery中会出现这个错误?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个代码: jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); //scroll_break = parseInt($(".header-container").height()); console.log( "pozitie scroll",scroll); // console.log( "scroll_break",scroll_break );

我有一个代码:

jQuery(window).scroll(function() {

     var scroll = jQuery(window).scrollTop();
     //scroll_break = parseInt($(".header-container").height());
     console.log( "pozitie scroll",scroll);
    // console.log( "scroll_break",scroll_break );


     var elem = $(".header-wrapper");
     if (elem.hasClass ("class")) {
         alert("sss");
      }else{
 alert("sssa");
      }
});
当我运行此代码时,收到以下错误(我在下面附上了一个屏幕截图以了解)

这就是错误:

Uncaught TypeError: Cannot read property 'hasClass' of null
这个错误是由什么引起的

提前谢谢

编辑:


我创建了一个示例,这意味着elem实际上不是一个元素。我猜
.header wrapper
不是HTML中存在的实际类

在浏览器javascript控制台中,键入
$(“.header wrapper”)
并点击enter键应返回匹配的所有元素的数组,以便检查

为确保不会出现此错误,应更改if语句:

if (elem.length && elem.hasClass("class")) {

在调用.hasClass()之前,
elem.length部分检查它是否存在。

Javascript认为,您需要获取
elem
变量的属性。这是因为您在函数名和参数的
()
之间留了一个空格。把它拿走

错误消息说,
elem
为空,因此上面一行中的jquery选择器没有找到任何内容。因此,如果存在一个类为
头包装器的元素,请查看您的代码

jQuery(window).scroll(function() {

     var scroll = jQuery(window).scrollTop();
     console.log( "pozitie scroll",scroll);

     elem = $(".header-wrapper");
     if (elem.hasClass("class")) { //Without whitespace
         alert("sss");
      }else{
         alert("sssa");
      }
});

我怀疑
$
可能被另一个库在页面的其他地方使用,这就是为什么您使用
jQuery(窗口)
而不是
$(窗口)

尝试:


你也可以发布html文件吗。因为js代码是完美的,html代码一定有问题,比如类名或其他什么。

你在哪里声明了
elem
?你也能分享你的html吗?你能分享你的html代码吗?肯定还有其他代码。甚至无法复制doing:
var elem=$();alert(elem.hasClass('test')//false。您确定变量
elem
没有更改吗?简单测试
console.log(elem)
我尝试了你的代码,但没有得到你的错误,也许你有一些其他的代码,这是冲突的…你的错误没有出现在你的示例JSFIDDLE中,你不需要删除空格。当选择器没有找到匹配项时,jQuery会自动失败OK,但为什么它不起作用?这是一个简单的例子。。。应该去smoothly@cristi在jsfiddle.net中创建一个复制它的演示。另外,当您将elem登录到控制台而不是调用
hasClass
I在jsdfile中创建一个示例时,您会看到什么
var elem = jQuery(".header-wrapper");