jQuery |删除li标签 [英] jQuery | Remove li tags

查看:90
本文介绍了jQuery |删除li标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找解决方案以移除使用javascript数组过滤的< li> 标签。



var mygroups = [1,8,3,4,5]

示例(输入):

 < li>< div> 1元素。 Bla bla bla< / div>< / li> 
< li>< div> 2元素。 Bla bla bla。这是我的< span>帖子< / span>进入新群组< / div>< / li>
< li>< div> 3元素。 Bla bla bla。另一个< / li>
< li>< div>< a href =/ groups / viewgroup / 1-first-group>第一群< / a>< / div>< / li>
< li>< div> 5元素。 Bla bla bla。这是我的< span>新文章< / span>< / div>< / li>
< li>< div> 6元素。 < img alt =groups.wallclass =newsfeed-iconsrc =/ assets / favicon / default.png>< / div>< / li>
< li> 7元素。< / li>
< li>< div>< a href =/ groups / viewgroup / 8-second-group>第一组< / a>< / div>< / li>
< li>< div>< a href =/ groups / viewgroup / 16-other-group>第一群< / a>< / div>< / li>
< li>< div>< a href =/ groups / viewgroup / 5-tttt-group>第一组< / a>< / div>< / li>

如何获得此输出(移除所有不包含mygroups的实例):

 < li>< div>< a href =/ groups / viewgroup / 1-first-group>第一组<一个>< / DIV>< /锂> 
< li>< div>< a href =/ groups / viewgroup / 8-second-group>第一组< / a>< / div>< / li>
< li>< div>< a href =/ groups / viewgroup / 5-tttt-group>第一组< / a>< / div>< / li>

谢谢!

解决方案

真的应该引入某种标志(例如一个类名或一些 data - 属性)来标识< li> 节点,您不必显示。这样的详细检查需要扫描每个< li> 的整个HTML,这不是一个好习惯。然而,它可能看起来像这样:

$ $ $ $'''$'$('li')。each(function(_,node){
if(!/ group | groups / .test(node.innerHTML))
$(node).remove();
});

演示: http://jsfiddle.net/zkprg/


I'm searching a solution to remove <li> tags filtered using javascript array.

var mygroups=["1","8","3","4","5"]

Example (input):

<li><div>1 element. Bla bla bla</div></li>
<li><div>2 element. Bla bla bla. This is my <span>post</span> into new group</div></li>
<li><div>3 element. Bla bla bla. Another one</li>
<li><div><a href="/groups/viewgroup/1-first-group">First group</a></div></li>
<li><div>5 element. Bla bla bla. This is my <span>new post</span></div></li>
<li><div>6 element. <img alt="groups.wall" class="newsfeed-icon" src="/assets/favicon/default.png"></div></li>
<li>7 element.</li>
<li><div><a href="/groups/viewgroup/8-second-group">First group</a></div></li>
<li><div><a href="/groups/viewgroup/16-other-group">First group</a></div></li>
<li><div><a href="/groups/viewgroup/5-tttt-group">First group</a></div></li>

How to get this output (Remove all instances which do not contain mygroups):

<li><div><a href="/groups/viewgroup/1-first-group">First group</a></div></li>
<li><div><a href="/groups/viewgroup/8-second-group">First group</a></div></li>
<li><div><a href="/groups/viewgroup/5-tttt-group">First group</a></div></li>

Thank you!

解决方案

You really should introduce some kind of flag (a classname for instance or some data- attributes) to identify <li> nodes you don't have to display. Such a verbose check needs to scan the whole HTML for each <li>, which is not a good practice. However, it could look like this:

$('li').each(function(_, node) {
    if( !/group|groups/.test( node.innerHTML ) )
        $(node).remove();
});

Demo: http://jsfiddle.net/zkprg/

这篇关于jQuery |删除li标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆