我正在寻找一个解决方案来删除< li>使用javascript数组过滤的标签.
阵:
var mygroups=["1","8","3","4","5"]
示例(输入):
<li><div>1 element.</div></li> <li><div>2 element. This is my <span>post</span> into new group</div></li> <li><div>3 element. Another one</li> <li><div> <a href="javascript:void(0);">Actor</a> <a href="/groups/viewgroup/1-first-group">First group</a> </div> </li> <li><div><a href="javascript:void(0);">Actor</a> <a href="/groups/viewgroup/10-ten-group">Ten group</a>5 element. This is my <span>new post</span></div></li> <li> <div>6 element. <a href="/j1.5/index.php/jomsocial/63-zzz/profile">Actor</a></div> <div><a href="/groups/viewgroup/test/5-second-group">Group other</a></div> </li> <li>7 element.</li> <li><div><a href="/groups/viewgroup/test/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="/j1.5/index.php?option=com_community&view=groups&task=viewgroup&groupid=1&Itemid=4">My other group </a></div></li>
如何获取此输出(删除锚点中不包含数组中的组的所有实例):
<li><div> <a href="javascript:void(0);">Actor</a> <a href="/groups/viewgroup/1-first-group">First group</a> </div> </li> <li> <div>6 element. <a href="/j1.5/index.php/jomsocial/63-zzz/profile">Actor</a></div> <div><a href="/groups/viewgroup/test/5-second-group">Group other</a></div> </li> <li><div><a href="/groups/viewgroup/test/8-second-group">First group</a></div></li> <li><div><a href="/j1.5/index.php?option=com_community&view=groups&task=viewgroup&groupid=4&Itemid=4">My other group </a></div></li>
此代码无法正常工作:
$('li').filter(function() { var a = $(this).find('a'); if (!a.length) return true; var text = a.attr('href').split('/')[3]; text = text.substring(0,text.indexOf('-')); if ($.inArray(text,mygroups) >= 0) return false; return true; }).remove();
这个人既不做这个工作:
$('li').filter(function() { if($(this).is('*:has(a[href|=/group/viewgroup/])') { var href = $(this).find('a').attr('href'),trail = href.split('/')[3],number = + /(\d+)-/.exec(trail)[1]; return $.inArray(myarray,+number) == -1; } return true; }).remove();
解决方法
这似乎做你想要的.这不是世界上最整洁的代码:
$('li').filter(function() { var a = $(this).find('a'); if (!a.length) return true; var text = /(\d+)-/.exec(a.attr('href'))[1]; if ($.inArray(text,mygroups) >= 0) return false; return true; }).remove();
它得到所有的li,然后过滤掉任何具有匹配值的数组并删除剩下的那些.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。