Ich kann keine definitive Antwort dafür finden. Beachten Sie Folgendes:jQuery wie sieht man in jedem()?
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;
};
});
Dieser Code ist ein Versuch, doppelte Werte in einem Satz von Eingängen mit der Klasse syndUID
zu finden. Sie sind über eine Form verstreut, also nicht nebeneinander im DOM.
next().val()
ist jedoch immer undefiniert. verwende ich die falsche Funktion? Wie gucke ich einfach zum nächsten Element? Ich habe Zugriff auf den Index, aber ich weiß nicht, wie ich ihn überhaupt nutzen soll.
EDIT:
Nach dem Lesen der Kommentare und Antworten, die ich dort wirklich realisiert ist keine richtige Iterator in jQuery, die mir wirklich dumm scheint, da es jeder sieht(). Ich hatte auch einen anderen Fehler mit dem obigen Code. Hier ist die endgültige Lösung, die ich verwendet, das funktioniert:
// 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();
});
Für jeden, der dies über Google findet, die von anderen bereitgestellt Antworten kann eine annehmbare Alternative sein, aber für meine Bedürfnisse fand ich dies genügte.
'next()' wird das nächste Geschwisterelement erhalten, nicht unbedingt das nächste Element in der übereinstimmenden Menge. –
So kommen wir zu dieser Frage: http://stackoverflow.com/questions/3670136/jquery-find-next-element-by-class. – nicael
Sie möchten nur wissen, ob es doppelte Werte gibt? Zumindest deutet das auf den Code hin (für mich) – Andreas