【问题标题】:Remove empty span tags , but keep ones with following li tag删除空的 span 标签,但保留带有以下 li 标签的标签
【发布时间】:2014-02-16 13:07:18
【问题描述】:

我正在使用一个脚本来模拟 milonic 菜单并用数据填充我的空 HTML。我需要删除脚本运行后留下的一些空标签。

我正在使用它来删除所有具有空跨度标签的 li 标签

$("li span:empty").parent().remove(); // REMOVE UNUSED LI TAGS

但我只是注意到有一些 li 标签在其中填充了一个额外的 li 标签,虽然 span 是空的,但我需要保留那个 li 标签。这是HTML

<li class="division00"> <!----- KEEP EMPTY SPAN THAT HAS LI.SINGLE TAG ------>
    <span></span>
    <li class="single">
        <ul></ul>
    </li>


<li class="division01"> <!----- REMOVE ALL LI TAGS THAT HAVE EMPTY SPAN CLASSES ------>
    <span></span> 
        <ul></ul>
    </li>

<li class="division02"> <!----- REMOVE ALL LI TAGS THAT HAVE EMPTY SPAN CLASSES ------>
    <span></span> 
        <ul></ul>
    </li>

<li class="division03"> <!----- DO NOT REMOVE ------>
    <span>TEXT HERE</span> 
        <ul></ul>
    </li>

【问题讨论】:

  • 您的 html 无效...li 不能将 li 作为孩子
  • YOur javascript 也是无效的。 li span:empty 是一个字符串,所以必须用引号括起来。
  • 不担心空的li标签,如果空span则删除整个li
  • 是的,实际上我读的是 li:empty 而不是 span:empty。对不起这是我的错。我往往有点快^^猜你的remove unused li tags评论有点误导^^

标签: jquery


【解决方案1】:

假设你的 html 是有效的尝试

$('#myul > li').not(':has(li.single)').has('> span:empty').remove()

演示:Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2013-07-02
    • 2015-12-13
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    相关资源
    最近更新 更多