[Erledigt] String auf bestimmter div-Ebene ansprechen

  • Hallo zusammen!


    Anbei das Skript um welches es geht. Ich versuche mit JS beim Onload auf die blau markierte Zeile und dessen Text zuzugreifen.


    Dachte eigentlich, dass es so gehen müsste:


    Code
    function ReplaceText(){
        var txt = document.getElementById('ID_Action_ApplicationName_Inner');
        var eltxt = txt.firstChild.nodeValue;
        eltxt = eltxt.replace('Hilfe', 'NeuerText');
        txt.firstChild.nodeValue = eltxt;
    }


    Aber irgendwie will das nicht so recht. Es scheitert beim Anwählen des Elements. Mit der ID-Variante, die mit Ausnahme von Tabellen, sonst brav funktioniert, klappt hier nichts.



    PS: Ich würde mich sehr freuen wenn ich auch mal was finde, womit ich selber lerne auf diese Ebenen zuzugreifen. Mit JS und jQuery komme ich gut klar, aber die richtigen Elemente bzw. deren Ebenen anzuwählen macht mir immer Schwierigkeiten. Mal sind es Tabellen, mal solche Seitenelemente wie hier. Leider weiß auch mein schlaues Buch von Jon Duckett hier nicht weiter. Alle anderen Wälzer von Rheinwerk Computing und Co. die hier sonst rumliegen sind noch weiter am Thema vorbei. Immer bestens erklärt wie man Skripte bastelt, aber dieses Auffinden von Elementen max. nur anhand von Class oder ID.

    Und vielleicht gibt es in der dem Forum zugehörigen Seminarreihe da was für mich...

  • Navigieren im DOM ist mit Vanilla-Javascript ziemlich spröde. Dafür empfehle ich eher jQuery. Bei deinem konkreten Beispiel brauchst Du jedoch gar nicht zu navigieren, weil Du schon die ID des gesuchten Elementes hast. Sollte so funktionieren (ungetestet):

    Code
        var ele = document.getElementById('ID_Action_ApplicationName_Inner');
        var eltxt = ele.textContent;
        eltxt = eltxt.replace('Hilfe', 'NeuerText');
        ele.textContent = eltxt;

    Siehe:

    https://wiki.selfhtml.org/wiki/JavaScript/DOM/Node/nodeValue

    Zitat

    document.getElementById("derText").firstChild.nodeValue = text; war in der alten Dokumentation von Stefan Münz ein gängiger Weg, um den Inhalt eines Textknotens zu ändern. Heute können Sie dies mit der Eigenschaft textContent bequemer erledigen.

  • Danke dir! Leider ist er immer noch der Meinung, dass es das Element nicht gibt. Verstehe es wirklich nicht...

    Gibt mir weiterhin einen Fehler aus, dass textcontent eines undefinierten Wertes oder Nullverweises nicht abgerufen werden kann.
    Dabei sieht man doch im Skript ganz klar es ist da und auf dieser Seite.

  • Hm ja, das war's. Vielen Dank!

    Aber ehrlich, versteh mal einer das System... Ich muss bei JS auf Seiten immer "ID_" vorgeben. Also bspw. ID_textcontrolxyz. Da hattet ihr euch schon oft gewundert wenn ich hier Skripte gepostet hatte. Aber nur so geht es.


    Anscheinend sind aber Objekte im Header, anstatt der Applikationsseite, von dieser ID-Regelung ausgenommen. Hätte ich auch selbst drauf kommen können... Nun ja.

    Immerhin mit textContent was neues gelernt!


    Zitat

    Navigieren im DOM ist mit Vanilla-Javascript ziemlich spröde. Dafür empfehle ich eher jQuery.

    Vielleicht wenn wir schon dabei sind: jQuery finde ich genauso sympathisch wie JS. Also wenn du mir irgendwelche Unterlagen zum büffeln zur Navigation per jQuery zeigen kannst bin ich sehr dankbar! Das ist zu 50% meine Hauptsuche im Internet herauszufinden wie ich bestimmte Objekte anspreche.

  • Das Navigieren im DOM mit jQuery ist zu 50 % CSS. Am wichtigsten ist dies:

    https://wiki.selfhtml.org/wiki/CSS/Selektoren/Kombinator

    Beim Verwenden von Selektoren gilt, das man kein Vorgänger- und keine Elternelemente ansprechen kann. Dafür muss man jQuery verwenden.

    Die wichtigsten Funktionen sind children(), find(), next(), prev(), parent() und closest(). Du informierst dich darüber am besten bei https://api.jquery.com/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!