2014-02-16 101 views
0

我正在使用一个脚本来模拟milonic菜单并填充空白的HTML与数据。我需要删除脚本运行后剩下的空标签。删除空span标签,但保留以下li标签

我用这来删除有一个空的跨度标记的所有立标签

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

但我只注意到有一些填充在其中一个额外的L1标签和一些李标签虽然跨度是空的我需要保留这个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> 
+4

你的HTML是无效...'li'不能有'li'作为一个孩子 –

+1

你的JavaScript也是无效的。 'li span:empty'是一个字符串,所以它必须用引号包围。 –

+0

不担心emptly li标签,如果是空span然后删除整个li – MShack

回答

3

假设你的HTML是有效的尝试

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

演示:Fiddle