我正在使用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总会被记录到控制台。为什么这是一个潜在的解决方法?
答案 0 :(得分:0)
将其更改为
hovered.push(this)
和
hovered.indexOf(this)
答案 1 :(得分:-1)
您正在创建两个不同的jQuery对象,一个是您推送的,另一个是您 传递给indexOf(..)
按如下方式更改您的代码:
$(document).ready(function(){
$(".element").hover(function() {
var $this = $( this );
hovered.push( $this );
console.log( hovered.indexOf( $this ) );
});
});