Javascript 获取所选DOM元素的索引返回-1?

Javascript 获取所选DOM元素的索引返回-1?,javascript,jquery,html,Javascript,Jquery,Html,我为click事件绑定相册_项,并希望获取框的索引。但是我得到了-1 HTML 您正在尝试选择一个不存在的元素: find函数搜索给定元素的子元素,在本例中为.album\u项。所以,.album_项下没有任何子元素,这就是它的索引为-1的原因 相反,必须使用“最近”函数才能向上搜索DOM树: $(document).on('click', '.album_item', function () { alert($(this).closest('.box_album_item')

我为click事件绑定相册_项,并希望获取框的索引。但是我得到了-1

HTML


您正在尝试选择一个不存在的元素:

find函数搜索给定元素的子元素,在本例中为.album\u项。所以,.album_项下没有任何子元素,这就是它的索引为-1的原因

相反,必须使用“最近”函数才能向上搜索DOM树:

$(document).on('click', '.album_item', function () {

        alert($(this).closest('.box_album_item').index());

    });
应该是:

alert($(this).closest('.box_album_item').index());
.find将元素的内部传递给子元素。 .最接近父对象的向上遍历。 因此,在您的情况下.box\u album\u项是父项,因此应使用.nexist

alert($(this).closest('.box_album_item').index());

使用id代替class

在.album\u项中没有.box\u album\u项,您的关系是反向的。它还值得一读,它告诉您索引将返回-1的确切时间和原因。有人想说明他们为什么要向下投票吗?
alert($(this).closest('.box_album_item').index());
alert($(this).closest('.box_album_item').index());
$(document).on('click', '#album_item', function () {