indexOf jQuery对象总是返回-1

时间:2017-05-03 17:55:57

标签: javascript jquery arrays indexof

我正在使用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总会被记录到控制台。为什么这是一个潜在的解决方法?

2 个答案:

答案 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 ) );
    });
});