我试图检测重复,以便我可以识别它们并为用户添加其他信息以便能够区分它们。
但是下面发生的事情是一切都被作为一个骗局触发。
这是漫长的一天,并希望第二双眼睛帮助解决这个问题。
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;
答案 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时你会遇到一些错误而不需要它。这应该可以解决你的问题
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;
基本上,$(this)没有属性$(text),只是一个字符串,而不是一个html元素。
另外,快速查看jQuery文档我在$ .each上找不到任何.next()或.previous(),所以我用原生forEach替换它,这样我就可以访问上一个和下一个索引了比较