jQuery - Element mit Klasse zuvor finden
bearbeitet von
@@ebody
> Was ist, wenn ich z.B. 3 Formulare habe
Dann kannst du *event delegation*{:@en} nutzen: Du registriert einen Eventhandler für ein Element oben im DOM:
~~~js
document.body.addEventListener('click', event => {});
~~~
Darin fragst du ab, ob das `click`-Event durch einen Button ausgelöst wurde:
~~~js
document.body.addEventListener('click', event => {
if (event.target.nodeName === 'BUTTON') {}
});
~~~
Wenn du noch andere Buttons mit anderen Funktionen auf der Seite hast, musst du die Bedingung natürlich spezifischer machen, bspw. über eine Klasse der Buttons.
Wenn der `click` nun durch einen Button ausglöst wurde, soll der gerade[an anderer Stelle](https://forum.selfhtml.org/self/2020/mar/15/jquery-element-mit-klasse-zuvor-finden/1767163#m1767163) gezeigte Code ausgeführt werden:
~~~js
document.body.addEventListener('click', event => {
if (event.target.nodeName === 'BUTTON') {
const testElement = event.target.form.querySelector('.test');
testElement.parentNode.removeChild(testElement);
}
});
~~~
Fertig.
*Event delegation*{:@en} geht übrigens auch mit jQuery. Aber man braucht jQuery heutzutage i.A. nicht mehr.
LLAP 🖖
--
Wenn der Faschismus wiederkommt, wird er nicht sagen: Hallo, ich bin der Faschismus! Sondern er wird sagen: Ich nehme die Wahl an.