jquery删除重复的li

dav*_*ave 11 html javascript jquery

<ul id="myid">   
<li>microsoft</li>  
<li>microsoft</li>  
<li>apple</li>  
<li>apple</li>  
</ul>   
Run Code Online (Sandbox Code Playgroud)

我想li通过使用jquery 删除重复项.

我怎样才能做到这一点?

and*_*lzo 8

例子 我发现脚本更快

var liText = '', liList = $('#myid 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(); });
Run Code Online (Sandbox Code Playgroud)


Tom*_*lak 7

uniqueLi = {};

$("#myid li").each(function () {
  var thisVal = $(this).text();

  if ( !(thisVal in uniqueLi) ) {
    uniqueLi[thisVal] = "";
  } else {
    $(this).remove();
  }
})
Run Code Online (Sandbox Code Playgroud)

这构建了唯一值的索引(对象).对于您的示例,之后uniqueLi将如下所示:

{
  "microsoft": "", 
  "apple": ""
}
Run Code Online (Sandbox Code Playgroud)

因此,只要遇到之前已添加到索引的值,<li>就会删除关联.


Tha*_*ama 5

你可以用

var inner = [];
$('li').each( function(index, Element){
    if (jQuery.inArray(this.innerHTML, inner) == -1){
      inner.push(this.innerHTML);
    }
    else {
      $(this).remove();
    }
});
Run Code Online (Sandbox Code Playgroud)