2015-06-14 77 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()); 
});