[英]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.