删除ul 标签下文本相同的li元素 如何用JQUERY实现

如题所述

思路:读取所有li元素的文本→剔除重复值→删除所有li元素→生成非重复的li元素。核心代码如下:

// 获取所有li元素
li = $("li").map(function() {
  return $(this).html();
}).get();
// 剔除重复值
$.unique(li);
// 删除之前的li元素
$("li").remove();
// 创建无重复的li元素
$.each(li, function(index, val) {
  $("ul").append('<li>'+val+'</li')
});

实例演示如下:

1、创建Html元素

<div class="box">
<span>实例演示:点击按钮剔除重复的列表项目</span><br>
<div class="content">
<ul>
<li>刘备</li>
<li>关羽</li>
<li>刘备</li>
<li>张飞</li>
<li>关羽</li>
<li>刘备</li>
</ul>
    <input type='button' value='剔除' />
</div>
</div>

2、设置css样式

div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
div.box>span{color:#999;font-style:italic;}
div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
li{margin:5px;list-style: none;}
input[type='button']{height:30px;margin:10px;padding:5px 10px;}

3、编写jquery代码

$(function(){
$("input[type='button']").click(function() {
li = $(".content li").map(function() {
return $(this).html();
}).get();
$.unique(li);
$(".content li").remove();
$.each(li, function(index, val) {
$(".content ul").append('<li>'+val+'</li')
});
});
});

4、观察效果

4.1 初始状态

4.2 点击“剔除”按钮之后效果

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-15
var temp = '';
$(function(){
$('ul>li').each(function(){
if(temp.indexOf($(this).html())!=-1)
$(this).remove();
temp += $(this).html();
})
})
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>2</li>
<li>4</li>
<li>3</li>
</ul>本回答被提问者和网友采纳

删除ul 标签下文本相同的li元素 如何用JQUERY实现
思路:读取所有li元素的文本→剔除重复值→删除所有li元素→生成非重复的li元素。核心代码如下:\/\/ 获取所有li元素li = $("li").map(function() { return $(this).html();}).get();\/\/ 剔除重复值$.unique(li);\/\/ 删除之前的li元素$("li").remove();\/\/ 创建无重复的li元素$.each(li...

如何使用jquery 的方法,将一段ul内a的title都一样的li去掉。
('ul li').not(function (i) { return $(this).prevAll('li:has(a[title="' + $('a', this).attr('title') + '"])').length < 1;}).remove();

jquery中怎么删除<ul>中指定的<li>
删除指定元素首先得选择它。如:("ul li") 这个表示选择ul下所有的li。("ul li") .remove();\/\/表示删除所有的li。("ul li:eq(0)").remove()\/\/表示删除第一个li。0 表示第一个 1表示第二个 以此类推。

jquery中怎么删除<ul>中的整个<li>包括节点
使用jquery库的函数:remove()。功能思路:展现一个UL,然后设计一个按钮,通过绑定删除函数,点击时删除所有LI节点。实例演示如下:1、设计简单的一个页面,其中html代码如下:简单的样式文件:此时的页面内容展示如下:2、设计JS代码,实现删除函数。3、实例操作,点击按钮,实现节点删除,展示如下:完成设...

js动态添加与删除ul中的li
1、使用jquery脚本库,因此先引入jquery脚本文件。2、html代码里,就是一个ul列表,里面有二个img控件,还有一个按钮。要注意的是给ul加了一个样式名。3、使用jquery,先为按钮添加一个点击事件。4、在点击事件函数里,我们直接使用js代码就能获取到img控件了,var imgs = $(".jy_ul li img");...

jquery中删除指定ul中除第一个li外的所有li的代码?
("ul li:first");jquery获取ul中的第一个li的方法:("ul li").eq(0);("ul li").first();("ul li").slice(0,1);\/\/slice第一个参数表示的选取开始的位置,第二个参数是结束的位置<script type="text\/javascript"> \/\/方案一$(function(){ var list=$("ul");for (var i = 0; ...

如何使用jQuery动态加载UL标签中的li标签。
首先获取到数据。在这里模拟创建一个数组用于测试数据集。第二步,创建一个button点击事件。用于动态观察,同时创建ul标签下的厨师li标签元素,直观的通过点击button的点击事件来触发li标签的更改。第三步,写入js控制代码,一开始通过remove动作先把原先的li表情清楚,接下来,使用jQuery的each方法遍历创建的...

...的ul隐藏当前li其它标签不变。如何用jquery来实现。
1、新建一个html文件,命名为test.html,在test.html文件内,使用ul标签、li标签创建一个列表,用于测试。2、在test.html文件内,给ul标签设置一个id属性,用于获得ul对象。3、在test.html文件内,创建一个button按钮,给button绑定onclick点击事件,当按钮被点击时,执行addBorder()函数。4、在js标签...

现在有一个ul,ul中有若干个li,li中又有一个a标签,如何用jquery写...
<li><a href="javascript:void(0)">222<\/a><\/li> <li><a href="javascript:void(0)">222<\/a><\/li> <li><a href="javascript:void(0)">222<\/a><\/li><\/ul>JQ:("a").click(function(){ $(this).parent().remove();});这是个简单的例子,你可以参考一下 ...

如何用jquery获得每个ul下最后一个li
可以使用css选择器 last-child 实现:("ul li:last-child"); \/\/ 指定属于父元素ul的最后一个子元素li示例代码如下 创建Html元素 <div class="box"><span>点击按钮获取每个ul下的最后一个元素:<\/span><br><div class="content"><ul> <li>John<\/li> <li>Karl<\/li> <li>Brandon<...

相似回答