next()在IE7中没有使用“display:none”获取内部UL

时间:2012-05-23 15:39:15

标签: jquery css internet-explorer-7 html-lists

以下标记会发生这种情况:

<ul id="sideMenu" class="menuFontStyle">
<li class="category">Test</li>
<ul class="secondLevel" style="display: none;">
<li></li>
</ul>
...

在FF和Chrome中,内部UL正在被接收,但IE7似乎正在跳到下一个li。什么可以作为一种解决方法?这是一个定制的手风琴脚本。

2 个答案:

答案 0 :(得分:5)

由于您在打开ul之前关闭了li,因此li不在ul内。我认为这不是你想要的。

然后,要访问<ul>,您使用.find会更好,因此它会$("li").find("ul"),因为它只能访问<ul>内的<li>

<ul id="sideMenu" class="menuFontStyle">
    <li class="category">Test
        <ul class="secondLevel" style="display: none;">
            <li></li>
        </ul>
    </li>
</ul>

答案 1 :(得分:1)

这是无效的HTML,所以你不应该对奇怪的结果感到惊讶。 ul元素可能没有其他ul元素作为直接子元素;它们可能只包含li个元素。 IE7可能会将ul包装在另一个li或类似内容中以使其有效。

使您的HTML有效:这将有助于浏览器将其转换为您想要的DOM结构,并且您的JS编码将更容易。