以下标记会发生这种情况:
<ul id="sideMenu" class="menuFontStyle">
<li class="category">Test</li>
<ul class="secondLevel" style="display: none;">
<li></li>
</ul>
...
在FF和Chrome中,内部UL正在被接收,但IE7似乎正在跳到下一个li。什么可以作为一种解决方法?这是一个定制的手风琴脚本。
答案 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编码将更容易。