扫码关注官方订阅号
$(".Aboutme").mouseover(function(){ if($(".Aboutme").next()==$(".News")){ alert("move"); } $(this).next().animate({left:'250px'}); }); 现在的问题是下面的animate动作是可以完成的,但是上面的alert却不能完成,也就是if判断不对,这是为什么呢?
光阴似箭催人老,日月如移越少年。
每次调用一次$()方法,在jq内部实际上就调用了一次new方法既然都调用new方法了,说明每使用一次$(),在堆内存中就单独分配了一块空间来存放该对象。因此虽然他们可以操作同一个dom节点,但是他们实际上是不相等的。
$()
$('.News') == $('.News') // false
其实你写$(".News")==$(".News")也返回false。
显然next函数并不是定义在element上面的,所以你$(".News")返回的也不是那个<p>,而是jquery给你包好的一个对象。为了实现方便,他可能每次都给你产生一个新的wrapper,然后这个wrapper里面有next函数给你用。因此你需要先获取对应的<p>,然后再比较。
正确写法:
$(".Aboutme").next().get(0)==$(".News").get(0)
$(".Aboutme").next() === $(".News") //false {} === {} //false {a:1} === {a:1} //false
与后两条比较一样,你所比较的两个对象是不相等的。你要确定比较的是两个对象,还是比较对象的属性。根据你的要求,应该是这样
$(".Aboutme").next()[0] === $(".News")[0])
$('.Aboutme').next().is('.News')
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
每次调用一次
$()方法,在jq内部实际上就调用了一次new方法既然都调用new方法了,说明每使用一次
$(),在堆内存中就单独分配了一块空间来存放该对象。因此虽然他们可以操作同一个dom节点,但是他们实际上是不相等的。
其实你写$(".News")==$(".News")也返回false。
显然next函数并不是定义在element上面的,所以你$(".News")返回的也不是那个<p>,而是jquery给你包好的一个对象。为了实现方便,他可能每次都给你产生一个新的wrapper,然后这个wrapper里面有next函数给你用。因此你需要先获取对应的<p>,然后再比较。
正确写法:
与后两条比较一样,你所比较的两个对象是不相等的。
你要确定比较的是两个对象,还是比较对象的属性。根据你的要求,应该是这样