2015-06-14 79 views
0

我想通过父div来循环并获得最后一个子div的底部位置。jQuery - 循环通过父div,获取最后一个子div的底部位置

<main id="swipe-page"> 
    <div class="dragend-page"> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
    </div> 
    <div class="dragend-page"> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
    </div> 
    <div class="dragend-page"> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
     <div class="page-content"></div> 
    </div> 
</main> 

最后一页内容div的底部位置将被设置为父dragend-page div的总高度。我将如何做到这一点?

$.each($('.dragend-page'), function(i, dragend_page) { 
    $('.page-content', dragend_page).each(function() { 
     var p = this.position(); 
     console.log(p.bottom); 
    }); 
}) 

这是获得所有子div的底部位置 - 不只是最后一个。而且因为它返回“this.position是不是一个函数”

+0

尝试.page-content:最后作为选择器。那么你也不需要每个电话。 Position是正确的函数,但是在每个函数中你需要做$(this),因为它是一个jQuery函数而不是Dom函数。 – dman2306

+0

而this.position()应该是$(this).position() –

回答

2

如@Rudi在评论https://api.jquery.com/position/返回一个包含属性顶部的对象,并留下提及的位置功能必须是不正确的..所以你可以使用这个

$('.dragend-page').each(function(i, dragend_page) { 
    var lastDiv = $(this).find('.page-content:last-child'); 
    var bottomPosition = lastDiv.position().top + lastDiv.outerHeight(true); 
    console.log(bottomPosition); 

}) 

此代码将输出在每个.dragend页

+0

https://api.jquery.com/position/返回一个包含属性顶部和左侧的对象。 – Rudi

+0

@Rudi谢谢..我更新了我的回答 –

+0

谢谢@ Mohamed-Yousef。然后我添加$(this).height(p);以改变父母身高,但是当我移动到下一张幻灯片时,它不会改变。 $( “#刷卡页”)dragend({ \t \t \t afterInitialize:函数(){ \t \t \t this.container.style.visibility = “看得见”; \t \t \t}, \t \t \t onSwipeEnd :函数(){ \t \t \t \t变种next_slide = parseInt函数(this.page)+ 1; \t \t \t \t window.location.hash = “滑动=” + next_slide; \t \t \t \t每个$(函数(I,dragend_page){ \t \t \t \t \t VAR lastDiv = $(本).find( '页面的内容:最后的孩子 '(' dragend页。')。) ; \t \t \t \t \t var p = lastDiv .position()。top + lastDiv.outerHeight(true); \t \t \t \t \t $(this).height(p); \t \t \t \t}) \t \t \t} \t \t}); – steeped

1

this会给你最后一个div的位置,而无需通过的div循环最后。第内容的底部位置

$(function(){ 
    console.log($(".dragend-page :last-child").last().position()); 
});