jQuery重复检测列表

时间:2018-02-19 22:59:27

标签: javascript jquery

我试图检测重复,以便我可以识别它们并为用户添加其他信息以便能够区分它们。

但是下面发生的事情是一切都被作为一个骗局触发。

这是漫长的一天,并希望第二双眼睛帮助解决这个问题。



jQuery(document).ready(function($) {
  "use strict";

  $.each(["bingo a", "bingo b", "bingo c", "bingo c", "bingo d", "bingo e", "bingo e", "bingo f", "bingo g"], function(index, element) {
    var $sameValue = $(this).text(),
      $abaadd = "";


    if ($(this).next().text() === $sameValue || $(this).prev().text() === $sameValue) {
      $abaadd = ' (dupe)';
    }
    $('ul').append($('<li>' + element + $abaadd + '</li>'));


  });


});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul>
</ul>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

我建议:

let arr = ["bingo a", "bingo b", "bingo c", "bingo c", "bingo d", "bingo e", "bingo e", "bingo f", "bingo g"]

for(i = 0; i < arr.length; i++){
  let item = arr[i];
  let optionalValue = "";

  if (item === arr[i + 1] || item === arr[i - 1]) {
    optionalValue = "(dupe)"
  }
   $('ul').append($('<li>' + item + optionalValue + '</li>'));
}

这是Jsfiddle:https://jsfiddle.net/mr_oza/5qmnewjg/2/

答案 1 :(得分:-1)

使用Jquery时你会遇到一些错误而不需要它。这应该可以解决你的问题

&#13;
&#13;
jQuery(document).ready(function($) {
  "use strict";

  var arr = ["bingo a", "bingo b", "bingo c", "bingo c", "bingo d", "bingo e", "bingo e", "bingo f", "bingo g"]
  arr.forEach(function(element, index){
    var $abaadd = "";

    if (arr[index + 1] === element || arr[index-1] === element) {
      $abaadd = ' (dupe)';
    }

    $('ul').append($('<li>' + element + $abaadd + '</li>'));


  });


});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul>
</ul>
&#13;
&#13;
&#13;

基本上,$(this)没有属性$(text),只是一个字符串,而不是一个html元素。

另外,快速查看jQuery文档我在$ .each上找不到任何.next()或.previous(),所以我用原生forEach替换它,这样我就可以访问上一个和下一个索引了比较