JS:检测包裹的内联元素?

时间:2010-02-11 14:30:45

标签: javascript jquery html dom

我输出了无限量的内联元素。现在,根据浏览器宽度,一些元素当然会换行到一个新行。是否可以检测并挑出这些元素行,或者dom只是将其视为一条大线?

感谢您的帮助!!

编辑:尝试通过偏移高度检测包裹的元素(感谢Matchu)。包装的元素输出与第一行相同的值(元素的总高度)。有什么理由吗?

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

3 个答案:

答案 0 :(得分:12)

您可以检查元素的offsetHeight属性并观察它是否跳跃。当内联元素比前一个元素具有更大的offsetHeight时,此元素位于新行上。

答案 1 :(得分:1)

element.getClientRects()在对包装的内联元素完成时将返回一个数组,每行包含一个rect对象。 Bowser支持是limited

答案 2 :(得分:-2)

不,直接不可能。您只能尝试测量每个元素的宽度,计算位置并处理不适合的元素。