简体   繁体   English

在ul列表中删除重复的li

[英]Delete repeated li in a ul list

I have a ul list in where I dynamically display several li's from a file. 我有一个ul列表,在其中我动态显示文件中的多个li。 Some of them appear to have the same tag, so I want to remove them an leave only one of them: 其中一些标签似乎具有相同的标记,因此我只想删除其中一个标签即可:

I have this: 我有这个:

    <ul id="dealers-ul" data-next="#branches-ul">
<li class="select-option"><input type="radio" name="choice" id="344410" value="Barcelona Premium"><label for=" 344410 "> Barcelona Premium</label></li>
<li class="select-option"><input type="radio" name="choice" id="343594" value="Barcelona Premium"><label for=" 343594 "> Barcelona Premium</label></li>
<li class="select-option"><input type="radio" name="choice" id="343584" value="Barcelona Premium"><label for=" 343584 "> Barcelona Premium</label></li>
<li class="select-option"><input type="radio" name="choice" id="344444" value="Barcelona Premium"><label for=" 344444 "> Barcelona Premium</label></li>
<li class="select-option"><input type="radio" name="choice" id="343882" value="Ibericar Cadí"><label for=" 343882 "> Ibericar Cadí</label></li>
<li class="select-option"><input type="radio" name="choice" id="343640" value="Ibericar Cadí"><label for=" 343640 "> Ibericar Cadí</label></li>
<li class="select-option"><input type="radio" name="choice" id="343856" value="Motor Munich"><label for=" 343856 "> Motor Munich</label></li>
<li class="select-option"><input type="radio" name="choice" id="343831" value="Motor Munich"><label for=" 343831 "> Motor Munich</label></li>
<li class="select-option"><input type="radio" name="choice" id="344363" value="Motor Munich"><label for=" 344363 "> Motor Munich</label></li>
<li class="select-option"><input type="radio" name="choice" id="343902" value="Motor Munich"><label for=" 343902 "> Motor Munich</label></li>
<li class="select-option"><input type="radio" name="choice" id="344450" value="Nürburgring"><label for=" 344450 "> Nürburgring</label></li>
<li class="select-option"><input type="radio" name="choice" id="344421" value="Pruna Motor"><label for=" 344421 "> Pruna Motor</label></li>
<li class="select-option"><input type="radio" name="choice" id="343628" value="Pruna Motor"><label for=" 343628 "> Pruna Motor</label></li>
<li class="select-option"><input type="radio" name="choice" id="343647" value="Sitjas"><label for=" 343647 "> Sitjas</label></li>
<li class="select-option"><input type="radio" name="choice" id="343892" value="Tallcar"><label for=" 343892 "> Tallcar</label></li>
</ul>

And I only want 1 of Barcelona Premium, one of Ibericar Cadí, one of Motor Munich, one of Pruna... 我只想要巴塞隆纳Premium的1个,伊比利亚卡迪(IbericarCadí)的一个,慕尼黑汽车的一个,普鲁纳的一个...

It would perhaps be better to not add the repeated items to begin with. 最好不要添加重复的项目。 This code will remove the repeated items. 此代码将删除重复的项目。

 var liText = '', liList = $('#dealers-ul li'), listForRemove = []; $(liList).each(function() { var text = $(this).text(); if (liText.indexOf('|' + text + '|') == -1) liText += '|' + text + '|'; else listForRemove.push($(this)); }); $(listForRemove).each(function() { $(this).remove(); }); 
 <ul id="dealers-ul" data-next="#branches-ul"> <li class="select-option"> <input type="radio" name="choice" id="344410" value="Barcelona Premium"> <label for=" 344410 "> Barcelona Premium</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343594" value="Barcelona Premium"> <label for=" 343594 "> Barcelona Premium</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343584" value="Barcelona Premium"> <label for=" 343584 "> Barcelona Premium</label> </li> <li class="select-option"> <input type="radio" name="choice" id="344444" value="Barcelona Premium"> <label for=" 344444 "> Barcelona Premium</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343882" value="Ibericar Cadí"> <label for=" 343882 "> Ibericar Cadí</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343640" value="Ibericar Cadí"> <label for=" 343640 "> Ibericar Cadí</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343856" value="Motor Munich"> <label for=" 343856 "> Motor Munich</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343831" value="Motor Munich"> <label for=" 343831 "> Motor Munich</label> </li> <li class="select-option"> <input type="radio" name="choice" id="344363" value="Motor Munich"> <label for=" 344363 "> Motor Munich</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343902" value="Motor Munich"> <label for=" 343902 "> Motor Munich</label> </li> <li class="select-option"> <input type="radio" name="choice" id="344450" value="Nürburgring"> <label for=" 344450 "> Nürburgring</label> </li> <li class="select-option"> <input type="radio" name="choice" id="344421" value="Pruna Motor"> <label for=" 344421 "> Pruna Motor</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343628" value="Pruna Motor"> <label for=" 343628 "> Pruna Motor</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343647" value="Sitjas"> <label for=" 343647 "> Sitjas</label> </li> <li class="select-option"> <input type="radio" name="choice" id="343892" value="Tallcar"> <label for=" 343892 "> Tallcar</label> </li> </ul> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

Source: jquery remove duplicate li 资料来源: jquery删除重复的li

 var listForRemove = []; var listOfUniqe = []; $('#dealers-ul li').each(function () { var text = $(this).text().trim(); if (listOfUniqe.indexOf(text) === -1) listOfUniqe.push(text); else listForRemove.push($(this)); }); $(listForRemove).each(function () { $(this).remove(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="dealers-ul" data-next="#branches-ul"> <li class="select-option"><input type="radio" name="choice" id="344410" value="Barcelona Premium"><label for=" 344410 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343594" value="Barcelona Premium"><label for=" 343594 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343584" value="Barcelona Premium"><label for=" 343584 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="344444" value="Barcelona Premium"><label for=" 344444 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343882" value="Ibericar Cadí"><label for=" 343882 "> Ibericar Cadí</label></li> <li class="select-option"><input type="radio" name="choice" id="343640" value="Ibericar Cadí"><label for=" 343640 "> Ibericar Cadí</label></li> <li class="select-option"><input type="radio" name="choice" id="343856" value="Motor Munich"><label for=" 343856 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="343831" value="Motor Munich"><label for=" 343831 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="344363" value="Motor Munich"><label for=" 344363 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="343902" value="Motor Munich"><label for=" 343902 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="344450" value="Nürburgring"><label for=" 344450 "> Nürburgring</label></li> <li class="select-option"><input type="radio" name="choice" id="344421" value="Pruna Motor"><label for=" 344421 "> Pruna Motor</label></li> <li class="select-option"><input type="radio" name="choice" id="343628" value="Pruna Motor"><label for=" 343628 "> Pruna Motor</label></li> <li class="select-option"><input type="radio" name="choice" id="343647" value="Sitjas"><label for=" 343647 "> Sitjas</label></li> <li class="select-option"><input type="radio" name="choice" id="343892" value="Tallcar"><label for=" 343892 "> Tallcar</label></li> </ul> 

This should do the job :) 这应该可以做:)

hope this is helpful for you 希望这对您有帮助

  uniqueLi = {}; $("#dealers-ul li").each(function () { var thisVal = $(this).text(); if ( !(thisVal in uniqueLi) ) { uniqueLi[thisVal] = ""; } else { $(this).remove(); } }) console.log(uniqueLi); 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <ul id="dealers-ul" data-next="#branches-ul"> <li class="select-option"><input type="radio" name="choice" id="344410" value="Barcelona Premium"><label for=" 344410 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343594" value="Barcelona Premium"><label for=" 343594 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343584" value="Barcelona Premium"><label for=" 343584 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="344444" value="Barcelona Premium"><label for=" 344444 "> Barcelona Premium</label></li> <li class="select-option"><input type="radio" name="choice" id="343882" value="Ibericar Cadí"><label for=" 343882 "> Ibericar Cadí</label></li> <li class="select-option"><input type="radio" name="choice" id="343640" value="Ibericar Cadí"><label for=" 343640 "> Ibericar Cadí</label></li> <li class="select-option"><input type="radio" name="choice" id="343856" value="Motor Munich"><label for=" 343856 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="343831" value="Motor Munich"><label for=" 343831 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="344363" value="Motor Munich"><label for=" 344363 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="343902" value="Motor Munich"><label for=" 343902 "> Motor Munich</label></li> <li class="select-option"><input type="radio" name="choice" id="344450" value="Nürburgring"><label for=" 344450 "> Nürburgring</label></li> <li class="select-option"><input type="radio" name="choice" id="344421" value="Pruna Motor"><label for=" 344421 "> Pruna Motor</label></li> <li class="select-option"><input type="radio" name="choice" id="343628" value="Pruna Motor"><label for=" 343628 "> Pruna Motor</label></li> <li class="select-option"><input type="radio" name="choice" id="343647" value="Sitjas"><label for=" 343647 "> Sitjas</label></li> <li class="select-option"><input type="radio" name="choice" id="343892" value="Tallcar"><label for=" 343892 "> Tallcar</label></li> </ul> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM