Renatus Reiser: Frage zum Wiki-Artikel „CreateElement“

problematische Seite

Nach allem, was ich über das DOM gelesen habe, ist es nicht möglich, eine neue Element-Node in ein Dokument einzufügen, die ATTRIBUTE enthalen soll (so wie etwa IMG)!

Ist das so?

  1. problematische Seite

    Hallo,

    nein, das ist nicht so. Wo hast du das denn gelesen?

    Gruß
    Jürgen

  2. problematische Seite

    Hallo Renatus Reiser,

    Jein.

    Du musst das in mehreren Schritten machen. Zuerst das Element erzeugen, dann mit setAttribute die Attribute ergänzen und das Ergebnis dann ins DOM hängen.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. problematische Seite

      Danke lieber Rolf für Deine aufschlussreiche Antwort.

      Du hast natürlich recht. (Und fünf Minuten nachdem ich meine Anfrage abgeschickt hatte, habe ich die Lösung dann selber auch gefunden - nach einem verzweifelten Nachmittag der ergebnislosen Suche...)

    2. problematische Seite

      @@Rolf B

      Du musst das in mehreren Schritten machen.

      Nein, musst du nicht.

      Es gibt andere Methoden, Elemente ins DOM zuhängen: insertAdjacentHTML

      🖖 Живіть довго і процвітайте

      --
      Ad astra per aspera
      1. problematische Seite

        Hallo Gunnar,

        grundsätzlich ja, und ich gestehe auch ein, diese Methode nicht auf dem Schirm gehabt zu haben. Sie ist zum Erstellen von Textinhalten aber genauso eine Footgun wie innerHTML.

        Denn eine Überschrift wie <h2>Müller & Sohn</h2> oder Fall 2: a < b braucht besondere Aufmerksamkeit, und LEIDER fehlt JavaScript die htmlspecialchars-Funktion, mit der uns PHP verwöhnt. Die ist natürlich schnell zusammengetippelt, aber man muss es halt tun.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. problematische Seite

          @@Rolf B

          Denn eine Überschrift wie <h2>Müller & Sohn</h2> oder Fall 2: a < b braucht besondere Aufmerksamkeit

          Solange Leerzeichen hinter & bzw.< stehen, ist das Aufmerksamkeit genug. (Beispiel)

          🖖 Живіть довго і процвітайте

          --
          Ad astra per aspera
          1. problematische Seite

            @@Gunnar Bittersmann

            Denn eine Überschrift wie <h2>Müller & Sohn</h2> oder Fall 2: a < b braucht besondere Aufmerksamkeit

            Solange Leerzeichen hinter & bzw.< stehen, ist das Aufmerksamkeit genug.

            Oder andere Zeichen, die den Parser nicht durcheinanderbringen.

            <span aria-hidden="true"><</span> geht auch durch: Beispiel.

            🖖 Живіть довго і процвітайте

            --
            Ad astra per aspera
      2. problematische Seite

        @@Gunnar Bittersmann

        Es gibt andere Methoden, Elemente ins DOM zuhängen: insertAdjacentHTML

        Die auch performanter sein dürften als createElement() plus setAttribute() plus appendChild() o.ä.

        🖖 Живіть довго і процвітайте

        --
        Ad astra per aspera
    3. problematische Seite

      @@Rolf B

      mit setAttribute die Attribute ergänzen

      Etliche Attribute lassen sich auch als Objekteigenschaften angeben (anstatt setAttribute()).

      Beim HTMLImageElement u.a. src, srcset, sizes, width, height und last but not least alt.

      Beispiel

      🖖 Живіть довго і процвітайте

      --
      Ad astra per aspera