我有div
几个孩子的整体“父母” 。每个孩子有1或2个孙子。
假设我有一个抱有第4个孩子的孩子的变量。这是层次结构:parent > child4 > secondGrandChild
。(请在下面的代码中查看名称。)然后,我想访问最接近的名称secondGrandChild
。
因此,基本上它应该转到child3
,检查它是否包含secondGrandChild
在其中。如果是这样,那很好,如果不是,应该去上一个并做同样的检查。
这是我尝试过的方法,但它说它不存在:
console.log($('#grandChild4').parent().closest('.chlid > secondGrandChild').offset().left);
这是层次结构:(请注意,并非每个孩子都会有secondGrandChild
。)
<div class- "parent">
<div class="child" id="child1">
<div class="firstGrandChild"></div>
<div class="secondGrandChild" id="grandChild1"></div>
</div>
<div class="child" id="child2">
<div class="firstGrandChild"></div>
<div class="secondGrandChild" id="grandChild2"></div>
</div>
<div class="child" id="child3">
<div class="firstGrandChild"></div>
<!-- <div class="secondGrandChild" id="grandChild3"></div> -->
</div>
<div class="child" id="child4">
<div class="firstGrandChild"></div>
<div class="secondGrandChild" id="grandChild4"></div>
</div>
<div class="child" id="child5">
<div class="firstGrandChild"></div>
<div class="secondGrandChild" id="grandChild5"></div>
</div>
</div>
你可以尝试这样的事情,
var $secondGrandChilds = $('.child > .secondGrandChild');
var currentIndex = $secondGrandChilds.index($('#grandChild4'));
var item = $secondGrandChilds.get(currentIndex-1);
console.log($(item).offset().left);
http://jsfiddle.net/k9gu16v6/1/
编辑
或更好,
var $item = $('#grandChild4').parent()
.prevAll('.child')
.find('.secondGrandChild')
.last()
console.log($item.offset().left);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句