• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

DOM-Listener und querySelector

Stega86

New member
Liebe Community,

ich möchte einen DOM Listener erstellen. Dieser soll, sobald eine Fehlermeldung auf der Seite erscheint, ein bestimmtes Event senden:

HTML:
<script>
var contentDiv = document.querySelector("#contents");
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if(mutation.type==="childList" && mutation.addedNodes[0].className==="error") {
dataLayer.push({'event': 'newErrorSpan', 'spanErrorMessage': mutation.addedNodes[0].innerHTML});
observer.disconnect();
}
}); 
});
var config = { attributes: true, childList: true, characterData: true }
observer.observe(contentDiv, config);
</script>

Leider scheitere ich bereits bei dem querySelector.

Ich möchte per
document.querySelector("offers-table__cell offers-table__cell--traveldate")
folgende HTML Klasse abrufen und mit
if(mutation.type==="childList" && mutation.addedNodes[0].className==="offers-table__error")
auf das Child Node Referenzieren.

HTML:
<div class="offers-table__cell offers-table__cell--traveldate">
07.03.2016 -
<input type="hidden" name="_booking[selectedOffer][travelStart]" value="2016-03-07">
23.03.2016
<input type="hidden" name="_booking[selectedOffer][travelEnd]" value="2016-03-23"><br>
(16 Nächte)
<input type="hidden" name="tx_tourvitalibe_booking[selectedOffer][duration]" value="16"><br>
<div class="offers-table__error">Ein Fehler ist aufgetreten! Bitte überprüfen Sie Ihre Angaben oder Versuchen Sie ein anderes Angebot!</div></div>

Die Klasse des Child-Nodes kann ich per querySelector abrufen, doch document.querySelector("offers-table__cell offers-table__cell--traveldate") funktioniert nicht.

Ich freue mich außerdem über weitere Vorschläge für die Umsetzung.

Könnte mir jemand bei dieser Angelegenheit weiter helfen?

Vielen Dank!

Stefga
 
Zuletzt bearbeitet von einem Moderator:
dein querySelector-Ausdruck such nach den Elementen <offers-table__cell> <offers-table__cell--traveldate>, nicht nach Klassen.
 
Dormilich,

danke dir! Könnte mir jemand sagen wie ich das umschreiben müsste? Mit einem Vorangegangenen . für Klassen habe ich es bereits versucht.

Danke

Stefga

- - - Aktualisiert - - -

OK,

habe nun die Klasse abrufen können: document.querySelector(".offers-table__cell--traveldate")

Mein Skript tut jedoch leider nicht was es soll, jemand vielleicht eine Idee was falsch sein könnte?
 
Die dataLayer wird ebenfalls durch den Google Tag Manager definiert. Sie ist Teil eines Scripts, das beim Laden der Seite geladen wird und enthält alle Informationen, die von der Webseite an Google Analytics gesendet werden sollen.

- - - Aktualisiert - - -

In dem Tool von Google kann man den Inhalt der Variable auslesen, oder auch klassisch mit der Console.
 
Zurück
Oben