2

我正在为一个由几个包含链接列表的 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>

我想知道是否有一种方法可以<li />使用 jQuery 从 HTML 中查找和删除所有标签。谢谢!

编辑:我忘了提,这只出现在 IE7 中。在 IE8/9 中,浏览器具有<li></li>HTML,但它不会将这些标签呈现为任何内容。该<li />标签会影响 IE7 中的布局(看起来它被呈现为块元素,因此它会将其下方的内容向下推)。

4

3 回答 3

6

$('li:empty')将找到所有空<li>标签。然后.remove()应该核对他们。

于 2012-08-31T14:11:38.337 回答
4
$("li:empty").remove();

:empty选择器文档

于 2012-08-31T14:12:03.717 回答
0

出于某种原因,没有一个修复程序在 IE6 中有效,尽管它们在所有其他浏览器中都有效。为了让 IE6 中的所有内容都能正常工作,我在<li>'s 中添加了一个类并$('#xyz').remove();在正文中使用以摆脱标签。

于 2012-09-04T13:54:14.317 回答