我在jQuery中遇到.index()
函数的问题。
DOM概述:
<div class="one">
<div class="two">
<div class="three"></div>
<div class="three"></div>
<div class="three"></div>
</div>
<div class="threeB"></div>
<div class="threeB"></div>
<div class="threeB"></div>
</div>
<div class="one">
<div class="two">
<div class="three"></div>
<div class="three"></div>
</div>
<div class="threeB"></div>
<div class="threeB"></div>
</div>
<div class="one">
<div class="two">
<div class="three"></div>
<div class="three"></div>
<div class="three"></div>
</div>
<div class="threeB"></div>
<div class="threeB"></div>
<div class="threeB"></div>
</div>
根据用户点击的three
中two
中的哪一个,显示threeB
之一。我想用.index()
函数执行此操作,但除了第一个函数之外,它都失败了。在第二个one
类中,两个three
具有索引3和4(而不是期望的0和1)。另一方面,.eq()
的{{1}}似乎可以正常工作。
任何解决这个问题的简洁方法,而不必计算threeB
之前有多少three
个?{/ p>
答案 0 :(得分:1)
它的工作原理如下:
$('.three').click(function(){
$(this).parent().parent().find('.threeB').eq($(this).index())
.css('background','green');
});
点击此处:jsFiddle