我似乎无法为此找到明确的答案.考虑以下:
var dupe = false; $(".syndUID").sort(function(a,b) { return a - b; }).each(function(i, el) { alert($(this).val() + " - " + $(this).next().val()); if($(this).val() == $(this).next().val()) { dupe = true; return; }; });
此代码尝试在类的一组输入中查找重复值syndUID
.它们分散在一个表单中,因此不会在DOM中彼此相邻.
next().val()
虽然总是未定义.我使用了错误的功能吗?我如何简单地窥视下一个元素?我可以访问索引,但我不知道如何使用它.
编辑:
在阅读了评论和答案后,我意识到jQuery中确实没有合适的迭代器,这对我来说似乎非常愚蠢,因为它提供了each().我还有上面代码的另一个错误.这是我使用的最终解决方案:
// duplicate check var dupe = false; var prevVal = undefined; $(".syndUID").sort(function(a,b) { return $(a).val() - $(b).val(); }).each(function() { if($(this).val() == prevVal) { dupe = true; return false; } prevVal = $(this).val(); });
对于通过谷歌找到这个问题的人来说,其他人提供的答案可能是一个不错的替代解决方案,但是根据我的需要,我发现这个问题已经足够了.