Jquery 是否计算所有列表项的总宽度?
我有如下标准UL:Jquery 是否计算所有列表项的总宽度?,jquery,loops,width,each,Jquery,Loops,Width,Each,我有如下标准UL: <ul> <li><a href="">Link</a></li> <li><a href="">Link</a></li> <li><a href="">Link</a></li> <li><a href="">Link</a></li> <li&
<ul>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
</ul>
我只是想知道是否有一种更快的方法可以不使用循环而获得相同的结果
谢谢你的帮助 您可以获得ul元素本身的宽度,但这将为您提供包括项目符号和边距在内的宽度:
var width = $("ul").outerWidth();
如果这是一个菜单,并且项目彼此相邻(而不是在下面),请尝试
$('ul')。outerWidth()
[编辑]如果ul
的宽度是固定的,则找到列表的最后一个元素并查看其右偏移量。因为偏移量总是相对于父元素,所以您所要做的就是添加offsetLeft
和offsetWidth
,以获得所有子元素的总宽度。要准确获得您想要的,没有。这不是一个很适合现有函数的情况,像这样的循环是最快的方法。有人说要把一个.childWidth()
或者什么东西放进核心…但我不会屏住呼吸:)
其他答案将包括家长的宽度,包括额外的空间,这通常不是你想要的,所以现在…像你一样坚持循环。添加的任何较短的内容都将保证在下面执行相同的工作量(可能代码也相同)。对不起,没有提到,UL的固定宽度大于所有列表项的总和。在这种情况下,只需查看列表中最后一个元素的右偏移量。啊,好的,谢谢你-.childWidth()听起来像是我想要的-没关系!
var width = $("ul").outerWidth();