這個問題已經吸引了我具有太大的實際意義。我喜歡OP的自己的答案,但我認爲它可以通過聲明(更直觀地),使用容器上的單個方法鏈完成。所以,我已經煮熟它歸結爲這樣:
$("#container div").each(function() {
$(this).toggleClass('rightMost',
$(this).is(':last-child') ||
$(this).position().left >= $(this).next().position().left
);
});
由於.next()
返回空的最後一個元素,你需要具備的條件還通過最後一個元素與.is(':last-child')
此外,由於容器可能僅足夠寬的一個元件 - 在這種情況下,所有應該被標記爲最右 - 噹噹前元素具有位置()左大於或等於那的.next的(條件應適用)。
你可以看到它的工作和包裹在被兩對文檔的準備和發射的功能可按窗口調整大小位置:http://jsfiddle.net/mhfaust/TdXZJ/
更新 的條件,可以更普遍地應用(雖然有點不太優雅)如果期望的效果不僅僅是應用/刪除類名稱,如下所示:
$("#container div").each(function() {
if($(this).is(':last-child') || $(this).position().left >= $(this).next().position().left)){
// do one thing...
}
else{
// ... or do the other.
}
});
迭代它們並比較它們的位置? – cIph3r 2013-02-23 11:53:09
是否所有'div'都來自同一行? – 2013-02-23 11:53:12