jQuery从值列表中删除重复元素

时间:2018-02-02 09:37:54

标签: jquery

我正在尝试删除具有重复值的li元素。

我有一个如下所示的列表:

<ul>
  <li value="1" name="moon" id="moon1">Moon<li>
  <li value="2" name="moon" id="moon2">Moon<li>
  <li value="1" name="moon" id="moon3">Moon<li>
  <li value="3" name="moon" id="moon4">Moon<li>
  <li value="4" name="moon" id="sun1">Sun<li>
  <li value="5" name="moon" id="sun2">Sun<li>
  <li value="4" name="moon" id="sun3">Sun<li>
</ul>

我需要这样的东西:

<ul>
  <li value="1" name="moon" id="moon1">Moon<li>
  <li value="2" name="moon" id="moon2">Moon<li>
  <li value="3" name="moon" id="moon4">Moon<li>
  <li value="4" name="moon" id="sun1">Sun<li>
  <li value="5" name="moon" id="sun2">Sun<li>
</ul>

我对jQuery非常基本。

2 个答案:

答案 0 :(得分:2)

  1. <li>li元素的无效属性。需要使用data-* attribute

  2. </li>需要使用li关闭(这在您的HTML中没有发生,所以更正)

  3. 迭代每个$(document).ready(function(){ var found = {}; $('li').each(function(){ var $this = $(this); if(found[$this.attr('value')]){ $this.remove(); }else{ found[$this.attr('value')] = true; } }); });,比较值并删除重复项

  4. 工作代码段:

    &#13;
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <ul>
      <li value="1" data-name="moon" id="moon1">Moon</li>
      <li value="2" data-name="moon" id="moon2">Moon</li>
      <li value="1" data-name="moon" id="moon3">Moon</li>
      <li value="3" data-name="moon" id="moon4">Moon</li>
      <li value="4" data-name="moon" id="sun1">Sun</li>
      <li value="5" data-name="moon" id="sun2">Sun</li>
      <li value="4" data-name="moon" id="sun3">Sun</li>
    </ul>
    &#13;
    $('#mydiv').append('<p>Please use <a href=" https://docs.google.com/forms/" id="open-url" target="_blank">this google form</a>.</p>')
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

你可以尝试这样的事情。

工作小提琴:JsFiddle

var seen = {};

$('.list li').each(function() {
  var txt = $(this).text();

  if (seen.hasOwnProperty(txt)) {
    $(this).closest("li").remove();
  } else {
    seen[txt] = true;
  }
});

和html一样

<ul>
  <li value="1" name="moon" id="moon1">Moon<li>
  <li value="2" name="moon" id="moon2">Moon<li>
  <li value="1" name="moon" id="moon3">Moon<li>
  <li value="3" name="moon" id="moon4">Moon<li>
  <li value="4" name="moon" id="sun1">Sun<li>
  <li value="5" name="moon" id="sun2">Sun<li>
  <li value="4" name="moon" id="sun3">Sun<li>
 <ul>