Erstellte id zugreifen, wie?

  • Hy,

    ich möchte auf ein Element klicken mit .onclick ("das ich mit js erzeugt habe + id vergeben"), Beim klick soll das Element einen shadow bekommen und unterhalb soll dann das bild übernommen und der text usw. ersetzt werden.

    zb. klick auf (rot) dummy 2, soll unten das bild angezeigt werden (rot) dummy 2 und Name, text ersetzt werden. Ich habe schon versucht irgentwie über die id zu zugreifen, bekomme immer "null". versuche ich direkt mit getELement('neraxis') bekomme ich auch "null". ALso irgentwie existiert es nicht.


    https://codepen.io/Noobie_Chan/pen/MWwbyxV


    Aber in der konsole sehe ich es:

    <section id="neraxis" class="hero_img class_knights" style="background-position: 0% 0%;">


    Kann aber nicht zugreifen, wo liegt der fehler?

  • Du erzeugst die Elemente erst im onload-Event. Füge ich dort eine Ausgabe ein, funktioniert es:

    Ich vermute, Du hast versucht, außerhalb dieser Funktion zuzugreifen, als das Element noch nicht definiert war.

  • Ja ich habe versucht außerhalb der function zuzugreifen und mit der ausgabe (log) sah ich das so nicht geht. Ich habe auch versucht in der funktion ein log zu machen bekomme zwar den namen der id raus aber beim weiterarbeiten in der function ist der wert "null".


    die window.onload habe ich gemacht das alle listen zusammen ausgegben werden (wenn ich die seite aufrufe). der Rest viewClass[i] zeigen mir dann nur die sparte an die ich möchte (zb. ritter, krieger, priester, etc.)


    in der function createKnights() werden die elemente erstellt (hier versuche ich greifen ohne erfolg)


    Wenn ich hier zugreifen möchte ka wie, wenn ich die mit getElementById hole und zuweise funktioniert auch nicht.


    Mein Log Konsole (.log(image)):


    kann man die Id nur so holen: getElementById('neraxis') oder kann ich auch so: getElementById(knightlist[i])?

  • Bei mit funktioniert der Zugriff auch in der Funktion createKnights:

    Zitat

    kann man die Id nur so holen: getElementById('neraxis') oder kann ich auch so: getElementById(knightlist[i])?

    Selbstverständlich sollte das zweite auch funktionieren.