我正在为一个网站导航,该网站由几个包含链接列表的jQuery手风琴组成,如下所示:
<ul class="menu">
<li>
<h3>Header 1</h3>
<ul>
<li class="menuItem">Link 1</li>
<li class="menuItem">Link 2</li>
<li class="menuItem">Link 3</li>
</ul>
</li>
<li>
<h3>Header 2</h3>
<ul>
<li class="menuItem">Link 4</li>
<li class="menuItem">Link 5</li>
<li class="menuItem">Link 6</li>
</ul>
</li>
</ul>
建立网站的CMS由于某种原因将任何空列表设置为自动关闭<li>
标记,如下所示:
<ul class="menu">
<li>
<h3>Header 1</h3>
<ul>
<li class="menuItem">Link 1</li>
<li class="menuItem">Link 2</li>
<li class="menuItem">Link 3</li>
</ul>
</li>
<li />
</ul>
我想知道是否有办法使用jQuery从HTML中查找并删除所有<li />
标记。谢谢!
编辑:我忘了提,这只出现在IE7中。在IE8 / 9中,浏览器在HTML中有<li></li>
,但它不会将这些标记呈现为任何内容。 <li />
标签会影响IE7中的布局(它看起来像是一个块元素,所以它正在推动它下面的内容)。
答案 0 :(得分:6)
$('li:empty')
会找到所有空的<li>
标记。然后.remove()
应该核对它们。
答案 1 :(得分:4)
$("li:empty").remove();
答案 2 :(得分:1)
看看这篇文章。我认为这也适用于你的问题。 https://stackoverflow.com/a/1520991/1437243
答案 3 :(得分:0)
出于某种原因,IE6中没有一个修复工作,尽管它们在所有其他浏览器中都有效。为了让所有内容在IE6中运行,我在<li>
中添加了一个类,并在正文中使用$('#xyz').remove();
来删除标记。