mit -> button onclick="" parameter weitergeben

  • Hallo! habe hier ein kleines Problem, bin mir auch nicht sicher ob das hier die richtige Abteilung ist.

    Ich will beim Klicken eines Buttons bei dem sich ein Script ausführt einen Parameter in dieses übergeben.


    Code
    1. <button id=10 onclick="myFunction()">Click</button>
    2. <script>
    3. function myFunction() {
    4. document.getElementById("details").open = true;
    5. }
    6. </script>

    Es würde mir sehr weiterhelfen wenn mir einer sagen kann, wie ich z.B den wert der ID (10) automatisch in das Script übernehmen kann.

    Natürlich wäre es mir auch recht wenn ich den wert ganz ohne die ID übergeben kann.


    LG & Danke :)

  • Hey,


    Du bekommst den Wert des buttons mit folgendem Code:


    document.getElementById("10").value();


    Aber was ich machen würde ist ein http request mit xmlhttprequest. Ist relativ einfach.


    Und am besten fügst du den eventlistener im js mit : addEventListener("Event", functionname); hinzu. Anstatt den inline zu erstellen.

  • Da man deinen Anwendungsfall nicht kennt, lässt sich schwer sagen, was in dem Fall das Richtige wäre.


    Trotzdem mal ein Beispiel, wie man das lösen könnte:



    Habe auch gleich mal das onclick mit dem EventListener ausgetauscht, da das der schönere Weg ist.


    Code ist nicht getestet. Müsste aber eigentlich funktionieren.


    Noch so am Rande erwähnt: IDs mit Zahlen am Anfang sind unzulässig, sprich kein valides HTML.

  • Wenn Du "this" an die Funktion übergibst, hast Du Zugriff auf das Element:

    Code
    1. <button id="10" value="20" onclick="myFunction(this)">Click</button>
    2. <script>
    3. function myFunction(ele) {
    4. console.log(ele.id);
    5. console.log(ele.value);
    6. //document.getElementById("details").open = true;
    7. }
    8. </script>
  • Wenn Du "this" an die Funktion übergibst, hast Du Zugriff auf das Element:

    Code
    1. <button id="10" value="20" onclick="myFunction(this)">Click</button>
    2. <script>
    3. function myFunction(ele) {
    4. console.log(ele.id);
    5. console.log(ele.value);
    6. //document.getElementById("details").open = true;
    7. }
    8. </script>

    Danke für die Zahlreichen antworten.

    Ich wollte, dass sich die Details einer Tabelle alle gleichzeitig öffnen, wenn ich die im ersten Spalt öffne.

    Ich wollte nun in der Ausgabeschleife einen Zähler integrieren, der dann immer ansagt wo sich die zu öffnende Zeile befindet.


    Ich konnte es aber auch so Regeln.

    Trotzdem sehr hilfreich :)