2010-02-11 85 views
5

我有一個不定數量的內嵌元素被輸出。現在,根據瀏覽器的寬度,一些元素當然會包裝到一個新的行中。是否有可能檢測並挑選出這些排列的元素,或者dom是否將它看作一條大線?JS:檢測包裝內聯元素?

感謝您的幫助!

編輯:試圖通過偏移高度檢測包裹的元素(感謝Matchu)。包裝元素輸出的值與第一行中的值相同(元素的總高度)。任何理由?

$('#content').children().each(function() { 
     alert($(this)[0].offsetHeight); 
    }); 

回答

12

您可以檢查元素的offsetHeight屬性,並觀察它的跳躍。當內聯元素比前一個元素具有更大的offsetHeight時,此元素位於新行上。

+0

非常聰明!我只是嘗試過,但沒有奏效。我在第一行獲得了與第二行相同的值。我在上面的問題中添加了我用來獲得偏移量的jquery代碼。 – user239237 2010-02-11 14:48:32

+0

適用於我:http://jsbin.com/awago3/edit - 由於您使用的是jQuery,我也這樣做了。 – Matchu 2010-02-11 14:55:59

+3

我使用.offset()。top就像你在你的例子中做的那樣,現在它也適用於我!感謝所有的幫助! – user239237 2010-02-11 15:10:02

-2

不,這是不可能的。您只能嘗試測量每個元素的寬度,計算位置並處理不適合的位置。

1

element.getClientRects()在包裝的內聯元素上完成時,將返回一個數組,每行包含一個rect對象。 Bowser支持是limited