Ich würde gerne wissen, ob es möglich ist, bestimmte Elemente zwischen zwei Punkten durch das DOM zu kriechen.Wählen Sie bestimmte Elemente zwischen zwei Elementen aus [jQuery]
Im Folgenden ein Beispiel des Baumes ist, mein Wunsch ist es, alle die labels
mit einem data-tagname
Attribute auszuwählen, ausgehend von den input
und endete am .parent
. Die Idee ist dann, es als Name der Eingabe festzulegen, d. H. Name = "diary_hours_monday_start".
ich dies in einer bestimmten Art und Weise zu tun, zum Beispiel:
$('input').each(function(){
$(this).attr('name', $(this).parent().parent().prev('[data-tagname]').attr('data-tagname')
+ '_' + $(this).prev('[data-tagname]').attr('data-tagname'); //etc...
});
Aber offensichtlich diese Lösung ist schrecklich, und die Struktur wird nicht immer gleich sind (einige Elemente verschachtelt 5 mal, andere 2).
TL; DR
ich entlang der Linien durchqueren, um den DOM-Baum von Punkt A, Filtern die guten Sachen aus, und Anhalten bei Punkt B nach einer Lösung gesucht Vielleicht gehen wir von A zu B und schiebe alle ausgewählten Elemente in ein leeres Array?
Könnten Sie bitte kopieren + fügen Sie die HTML in die Frage ein. Es erspart Menschen, die HTML-Code eingeben müssen, um mögliche Lösungen zu testen, was zu Ungenauigkeiten führen kann. –
Das gesamte Formular wird nach einer AJAX-Anfrage generiert (ich rufe eine XSD auf und verwende sie als Framework zum Erstellen von Formulareingaben usw. - Idee ist, eine Benutzeroberfläche zu erstellen, mit der XML-Dateien nach XSD-Regeln erstellt werden können). https://jsfiddle.net/jd4gh89n/6/ kann als Beispiel verwendet werden, obwohl –