我为了点击事件绑定了album_item,我希望获得box的索引。但我得到了-1。
HTML
<div id="album_item">
<div class="box box_album_item">
<div class="album_item">a</div>
</div>
<div class="box box_album_item">
<div class="album_item">b</div>
</div>
<div class="box box_album_item">
<div class="album_item">c</div>
</div>
的Javascript
$(function () {
$(document).on('click', '.album_item', function () {
alert($(this).find('.box_album_item').index());
});
});
答案 0 :(得分:0)
您正在尝试选择不存在的元素:
find()
函数搜索给定元素的子元素,在本例中为.album_item
。所以,.album_item
没有任何子元素,这就是为什么它的索引是-1
相反,您必须使用closest()
函数才能向上搜索DOM树:
$(document).on('click', '.album_item', function () {
alert($(this).closest('.box_album_item').index());
});
答案 1 :(得分:0)
它应该是:
alert($(this).closest('.box_album_item').index());
.find()
将元素内部传递给孩子。.closest()
向父母移动。因此,在您的情况下,.box_album_item
是父级,因此应使用.closest()
。
答案 2 :(得分:0)
alert($(this).closest('.box_album_item').index());
答案 3 :(得分:0)
$(document).on('click', '#album_item', function () {
使用id代替类