我有一份ul清单.在那里,有一些lis.我要删除所有li,且s 不具备带班的孩子noremove.
这是我的HTML:
<ul>
<li>Item 1</li>
<li>Item 2
<ul>
<li>Item 2.1</li>
<li>Item 2.2</li>
<li>Item 2.3</li>
</ul>
</li>
<li>Item 3
<ul>
<li class="noremove">Item 3.1</li>
<li>Item 3.2</li>
</ul>
</li>
<li class="noremove">Item 4
<ul>
<li>Item 4.1</li>
<li>Item 4.2</li>
</ul>
</li>
<li>Item 5
<ul>
<li>Item 5.1
<ul>
<li class="noremove">Item 5.1.1</li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
脚本运行后,我希望它看起来像这样:
<ul>
<li>Item 3
<ul>
<li class="noremove">Item 3.1</li>
</ul>
</li>
<li class="noremove">Item 4</li>
<li>Item 5
<ul>
<li>Item 5.1
<ul>
<li class="noremove">Item 5.1.1</li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如您所见,项目3未被删除,因为它有一个子节点class="noremove".但是,项目3.2被删除,因为它没有class="noremove"该类的任何孩子.
我怎样才能创建一个脚本呢?它需要在列表上递归运行,我想不出怎么做?
你想找到没有noremove类的所有li,看看他们是否有一个类noremove的孩子:
$("ul li:not(.noremove)").filter(function(){
return $(this).find(".noremove").length === 0;
}).remove();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |