使用jquery删除未使用的li类

时间:2014-02-08 20:55:55

标签: javascript jquery

这是我的HTML

<li class="single">
 <ul>
       <li class="franchise0001"></li>
       <li class="franchise0002"></li>
       <li class="franchise0003"></li>
       <li class="franchise0004"></li>
       <li class="franchise0005"></li>
       <li class="franchise0006"></li>
       <li class="franchise0007"></li>
       <li class="franchise0008"></li>
       <li class="franchise0009"></li>
       <li class="franchise0010"></li>
       <li class="franchise0011"></li>
       <li class="franchise0012"></li>
       <li class="franchise0013"></li>
       <li class="franchise0014"></li>
 </ul>
</li>

我运行一个脚本,发现是否有联盟注册的特许经营权,然后它将该特许经营标识和名称放在正确的特许经营权类中。然而,一些特许经营权始终是空的,从未填补。以下是脚本填写某些信息后的HTML示例

<li class="single">
 <ul>
   <li><a href="#"><img src=""></a><a>Top Dawg</a></li>
   <li><a href="#"><img src=""></a><a>THEEOhiostate</a></li>
   <li><a href="#"><img src=""></a><a>slambodians</a></li>
   <li><a href="#"><img src=""></a><a>Hollywood Shuffler</a></li>
   <li><a href="#"><img src=""></a><a>Thunderbolts</a></li>
   <li><a href="#"><img src=""></a><a>MeWantee</a></li>
   <li><a href="#"><img src=""></a><a>Cincy Slammers</a></li>
   <li class="franchise0007"></li>
   <li><a href="#"><img src=""></a><a>Mahafaha</a></li>
   <li><a href="#"><img src=""></a><a>SF Drug Lords</a></li>
   <li><a href="#"><img src=""></a><a>Hudy Delight</a></li>
   <li><a href="#"><img src=""></a><a>long shot</a></li>
   <li><a href="#"><img src=""></a><a>Green Guy</a></li>
   <li class="franchise00011"></li>
   <li class="franchise00012"></li>
  </ul>
</li>

我需要删除任何不包含从模拟脚本生成的“a”或“img”标记的空li。

我试过这个,但它只是将它们全部删除,我假设因为HTML将所有li类都清空,直到脚本填充它们

$("li:empty").remove();

以下是模拟脚本的链接 http://nitrografixx.com/2014/Nike2014/js/teams_simulation.js

2 个答案:

答案 0 :(得分:5)

首先,他们会调用&#34;标签&#34; ...

试试这个:

$("li:empty").remove();

答案 1 :(得分:1)

我看到你的脚本正在进行ajax调用。您需要在ajax调用完成后执行$("li:empty").remove();并且li标记已全部转换。如果您在不等待ajax调用完成的情况下执行调用以删除空的li调用,则可能会删除所有li标记,因为只有在ajax调用返回后才会修改li标记。

具体来说,在ajax成功函数的末尾添加卸妆代码,如下所示:

$.ajax({
   . . .
   success : function(data) {
      . . .
       $.each(data, function(index, element) {
          . . .
       });
       $("li:empty").remove(); // do this only AFTER the li tags have been modified
   );
   . . .
);