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");