indexOf jQuery 对象总是 returns -1
indexOf a jQuery object always returns -1
我正在使用 jQuery 并希望将悬停元素列表存储在一个数组中。我正在使用的代码如下(您可以将其粘贴到一个空的 html 文档中进行测试):
<div class="element" style="width:100px;height:100px;border:1px solid black;"></div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
var hovered = [];
$(document).ready(function(){
$(".element").hover(function(){
hovered.push($(this));
console.log(hovered.indexOf($(this)));
});
});
</script>
每当我将鼠标悬停在 div 上时,-1 总是会记录到控制台。为什么会这样,什么是潜在的解决方法?
改为
hovered.push(this)
和
hovered.indexOf(this)
您正在创建两个不同的 jQuery 对象,一个是您推送的,另一个是您
传递给 indexOf(..)
按如下方式更改您的代码:
$(document).ready(function(){
$(".element").hover(function() {
var $this = $( this );
hovered.push( $this );
console.log( hovered.indexOf( $this ) );
});
});
我正在使用 jQuery 并希望将悬停元素列表存储在一个数组中。我正在使用的代码如下(您可以将其粘贴到一个空的 html 文档中进行测试):
<div class="element" style="width:100px;height:100px;border:1px solid black;"></div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
var hovered = [];
$(document).ready(function(){
$(".element").hover(function(){
hovered.push($(this));
console.log(hovered.indexOf($(this)));
});
});
</script>
每当我将鼠标悬停在 div 上时,-1 总是会记录到控制台。为什么会这样,什么是潜在的解决方法?
改为
hovered.push(this)
和
hovered.indexOf(this)
您正在创建两个不同的 jQuery 对象,一个是您推送的,另一个是您 传递给 indexOf(..)
按如下方式更改您的代码:
$(document).ready(function(){
$(".element").hover(function() {
var $this = $( this );
hovered.push( $this );
console.log( hovered.indexOf( $this ) );
});
});