JavaScript: Wie lässt man ein Element ausblenden und ein anderes einblenden?

4 Antworten

"da es dynamisch mit document.write erstellt wird"

macht heute de facto keiner mehr, sondern fügt Elemente dynamisch durch Selektoren mit Methoden ähnlich wie innerHTML, appendTo in den DOM Tree ein. Ausblenden kannst Du ein Element mit der CSS Formatierung display:none;

Verwendest Du JQuery?

https://stackoverflow.com/questions/35174144/toggling-between-two-buttons-using-jquery

Dann ist das genau das richtige für dich.

Vielleicht haben hier Kollegen eine bessere Lösung.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

FinnB132  07.02.2020, 16:16

Guter Einwand zu document.write, der Fragesteller wollte aber meine ich beide buttons ausblenden und ein komplett neues Element anstelle dieser anzeigen.

Frage hätte man vielleicht ein bisschen besser formulieren sollen.

LG

1
LeBonyt  07.02.2020, 16:18
@FinnB132

Deinen Kommentar zu Jquery weiter unten stimme ich auch zu, deswegen wurde die Verwendung von JQ als Frage formuliert.

0
FinnB132  07.02.2020, 16:25
@LeBonyt

Hatte selber bis vor 6 Monaten oft JQuery in Webanwendungen implementiert, nachdem ich aber dann eine Wette gegen einen Mitarbeiter verloren hatte, indem es darum ging ob man mit einer forEach auf document.querySelectorAll() schneller text einfügen konnte als mit einem klassischen $(".selector").text() Funktionsaufruf, habe ich aufgehört JQuery zu benutzen und teilweise sogar aus alten Webanwendungen entfernt.

Ich hatte dann selber noch ein paar tests gemacht und gemerkt das JQuery nur in sehr wenigen fällen lohnenswert ist.

Entweder man hat inzwischen sowieso ein komplettes Framework implementiert (React, Angular...) oder man bekommt es auch mit Vanilla hin.

So meine Erfahrung mit JQuery.

0

Du gibst den Buttons in deinem HTML eine Klasse, in der JavaScript Funktion werden dann alle Elemente mit der Klasse über das document geholt und du kannst dann das style Attribut der DOM Node entsprechend setzen:

element.style.display = "none"

danach kannst du dann deine von document.write erzeugte DOM Node entsprechend manipulieren, das sie angezeigt wird.

LG

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler

Hallo,

ich habe was im Kopf und probiere das noch mal eben.

Aber im Endeffekt so etwas hier:

document.getElementById('buttonId').style.visibility = 'hidden';

Liebe Grüße
Leon

Woher ich das weiß:Berufserfahrung

LeonEliasW  07.02.2020, 16:12

Oder du gibst dem Buttton eine Klasse und greifst im CSS auf diese zu:

$('#buttonId').attr('class', 'buttonNotVisibleClass');

Wichtig dabei ist, dass das ein jQuery-Code ist und kein "normales" JavaScript.

Du musst selbstverständlich sowohl die "buttonId", als auch die "buttonNotVisibleClass" so umbennen, wie die ID von deinem Button und falls du das über eine CSS-Datei machst, wie die Klasse heißen soll.

Es funktionieren beide Wege, beim 2. musst du natürlich noch den CSS-Teil zum Verstecken des Buttons schreiben.

Liebe Grüße
Leon

0

javascript zu wissen ist natürlich wichtig. Aber ich würde dir auch jquery empfehlen. Ist prinzipiell JavaScript aber viel komfortabler wie ich finde

Die Antwort habe ich ausgelassen weil die Frage beantwortet wurde.

Woher ich das weiß:eigene Erfahrung

FinnB132  07.02.2020, 16:10

Wieso sollte man für ein einzelnes Feature eine ganze Library einbinden? Zudem ist das auch sehr gut ohne JQuery machbar, und zudem inzwischen performanter.

https://medium.com/@trombino.marco/you-might-not-need-jquery-a-2018-performance-case-study-aa6531d0b0c3

2
Nobody2019  07.02.2020, 16:12
@FinnB132

Er hat nur eine Frage bezüglich dieses Problems gestellt. Wir wissen nicht wie umfangreich er JS verwendet, zudem kann es für andere Projekte in Zukunft hilfreich sein. War nur eine Empfehlung.

1
Nobody2019  07.02.2020, 16:14
@Nobody2019

Die Antwort auf seine Frage hat er ja wie schon erwähnt erhalten daher bin ich nicht auf sein Problem eingegangen

0
FinnB132  07.02.2020, 16:19
@Nobody2019

Klar JQuery kann schon nützlich sein, aber gerade wenn man anfängt JavaScript zu lernen sollte man vielleicht erstmal den Vanilla teil lernen, damit man auch versteht was JQuery da im Hintergrund macht.

LG

2
Nobody2019  07.02.2020, 16:21
@FinnB132

Ja klar, da hast du auch völlig recht, in der Regel wird aber bei den Videos etc. Erklärt wann JQuery sinnvoll ist daher bin ich nicht ins Detail gegangen. Aber sind da wohl der selben Ansicht.

0