Seite 1 von 1

jQuery: element NACH einem anderen element finden?

Verfasst: 02.09.2019, 04:20
von nerd
Hallo,

mal eine doofe frage: die findet man mit jquery elemente, die (im sourcecode) nach/unter einem element stehen?
next() funktioniert bei mir nicht, weil das naechste elemet ein anderes parent-element hat, und next() wohl nur child-elemente darunter absucht.

einfaches beispiel: https://jsfiddle.net/ouacx7rq/

bei einem change event auf name soll email fokusiert werden,
bei einem change event auf email soll message fokusiert werden.

Tabindex kann ich nicht nutzen, weil ich jqtree eingebunden habe welches laufend den focus stiehlt wenn es ich ueber ein formular einzelne werte darin aendern will.

Verfasst:
von

Re: jQuery: element NACH einem anderen element finden?

Verfasst: 02.09.2019, 06:24
von supervisior
Warum denkst Du so kompliziert? Deine Input Felder haben doch alle einen anderen type oder lassen sich doch per Identifier je Input ansprechen.

Re: jQuery: element NACH einem anderen element finden?

Verfasst: 02.09.2019, 06:54
von nerd
Weil ich anders als im beispiel leider 10 eingabefelder habe die je nach einstellung entweder aenderbar oder readonly sein koennen, und ich einfach nur in das naechste aenderbare feld "darunter" springen will.

Was readonly ist oder nicht wird am server entschieden, und ich will die selbe logik nicht nochmal in javascript nachbauen muessen.

Re: jQuery: element NACH einem anderen element finden?

Verfasst: 02.09.2019, 07:14
von Hanzo2012
Hol dir die Liste aller relevanten input-Elemente. Um das nächste Element zu finden, fragst du den Index des „aktuellen“ Elements in dieser Liste ab (mit jQuery-Funktion „index“), addierst 1 drauf und holst dir mit dem neuen Index das nächste Element aus der Liste. Vorsicht beim letzten Element.

Re: jQuery: element NACH einem anderen element finden?

Verfasst: 02.09.2019, 08:08
von staticweb
Mit .closest / .parent erst nach oben und danach erst horizontal navigieren. Beim letzten Element muss du wieder auf das erste div navigieren. Im übrigen wäre es günstiger Klassennamen zu vergeben.