Javascript JQuery可以在隐藏的DOM对象上使用每个函数吗?

Javascript JQuery可以在隐藏的DOM对象上使用每个函数吗?,javascript,Javascript,我试图在菜单中找到所有“li”元素的总外部宽度,但我的代码似乎不起作用,所以我想知道是不是因为父UL元素设置为不显示 如果是这样的话,如何解决这个问题 <ul> <li>menu item 1</li> <li>menu item 2<ul> <li>sub menu item 1</li> <li>sub menu item 2</li> </ul><

我试图在菜单中找到所有“li”元素的总外部宽度,但我的代码似乎不起作用,所以我想知道是不是因为父UL元素设置为不显示

如果是这样的话,如何解决这个问题

<ul>
<li>menu item 1</li>
<li>menu item 2<ul>
     <li>sub menu item 1</li>
     <li>sub menu item 2</li>
</ul></li>
</ul>

当我提醒这一点时,它总是零…

无论如何,你可以从中摆脱出来…:

var totalWidth = 0;
jQuery("ul ul").show();
jQuery("ul ul li").each(function() {
     totalWidth += jQuery(this).outerWidth();
});
jQuery("ul ul").hide();
alert(totalWidth);
不确定您是否隐藏了
ul
选择器,但看到了系统

一些CSS黑客可能:

聊天后:

解决方案是将
空白处:无和。。。见:

带<代码>浮动:左

--- PARENT ---------------------
|------------------------       |
|   elem1   |   elem2   |       |
|           |           |       |
|           |           |       |
-------------------------
    elem3   |
            |
            |
-------------
使用
显示:内联块

--- PARENT ---------------------
|-------------------------------|---
|   elem1   |   elem2   |elem3  |   |
|           |           |       |   |
|           |           |       |   |
------------------------------------

问题不在于枚举,而在于outerWidth对所有枚举元素都返回零,因为它们不显示


如果您可以更改隐藏UL元素的方式,以使用
可见性:隐藏
而不是
显示:无
,则outerWidth应返回实际宽度,这将解决您的问题。

此函数用于什么?您可以使用类似top:99999px的方法将菜单项定位在屏幕外,这样用户就看不到它,而是将其隐藏起来。通过这样做,jquery可以选择宽度。悬停事件的一部分是设置/删除顶部样式,使其按预期定位。

Hmmm不确定这是否是最好的方法…因为加载时会有一个打开的菜单闪烁…我不确定我的问题是否正确,即jQuery是否无法确定隐藏元素的宽度。好的,抱歉。你以为评论里还写了什么?您可以使用
$(选择器)循环抛出隐藏元素。每个
,但无法计算隐藏元素的
宽度()
外径()
。另一种破解方法。就是把你的列表移动到左边,计算x像素,然后再重新放置。Thx是解决方案,但也许我应该提到我为什么要这么做。我希望子菜单在悬停时从左到右延伸,而不是垂直上下……因此我将子Li元素设置为浮动:左,但有趣的是,在第二项之后,第三项将下降到第一项下方,即使Li设置为浮动:左……这迫使我显式地在父UL上设置一个有效的宽度。但是,它现在变成非动态的,因为如果我的菜单项更少,那么我必须再次更改UL宽度…明白我的意思吗?也许有更好的CSS方法?认为我们可以使用CSS:This:OR或者因为它们被隐藏而不选择它们,或者因为它们被隐藏而宽度为0。尝试使用字符串并在each中添加jQuery(this).text(),然后发出警报。如果它仍然是空的,我建议AndreasAL的解决方案如下。如果不是空的,我建议AndreasAL的解决方案如下。
--- PARENT ---------------------
|-------------------------------|---
|   elem1   |   elem2   |elem3  |   |
|           |           |       |   |
|           |           |       |   |
------------------------------------