Wie bekommt man die ID von einem dynamischen element, wenn darauf geklickt?
Habe ich eine einfache html-Datei-upload-Formular, es ist so etwas wie dieses:
<form action="upload_file.php" id="theForm" method="post" onsubmit="return validateForm()" enctype="multipart/form-data">
<label for="file">Files:</label>
<input type="file" name="file[]" id="file1"><button id="rem1" type="button">Remove File</button>
...
...
<input type="file" name="file[]" id="file99"><button id="rem99" type="button">Remove File</button>
<input type="submit" name="submit" value="Submit">
</form>
Die Eingänge werden dynamisch erstellt. Ich muss wissen, die id der Schaltfläche, die angeklickt wurde.
- möglich, Duplikat der Kann ich bestimmen, in welcher Submit-button wurde in javascript verwendet?
- Mit jQuery, können Sie verwenden Sie die
.on()
- Methode, die Delegierten zu dynamisch erstellten Elementen. - Es gibt keine "klicken Sie auf "handler", der in den dargestellten code. Bitte fügen Sie ein Aktuelles Beispiel Fall. Dies ist der Grund, warum ich gegeben habe, ein -1: die post darstellen muss, das problem!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du mit jQuery das sollte dich glücklich machen:
wenn nicht, bringen Sie diese auf jeder Taste:
this
ist eher prägnant, aber es kann auch verwirrend sein, denn die Veranstaltung ist beigefügt übergeordneten Knoten und ausgelöst durch das element nach innen (Zielgruppe).Bekommen jede Eingabe mit javascript, befestigen Sie das click-Ereignis-listener zu jedem, dann in der click-Funktion, verwenden
this.id
. Live-demo hier (Klick).und die js:
Deine Frage fordert einen javascript-Antwort. Wenn Sie in Ordnung mit der Verwendung von jQuery, dann können Sie Ihr problem lösen, wie dieses.
Wenn nicht, dann vielleicht diese Antwort geben Ihnen Tipps, wo zu suchen. Es hat zu tun mit Bindung die click-Ereignis der neuen DOM-Elemente. -- Nevermind auf, dass, m59 geschaffen hat, die eine ausgezeichnete Antwort in reinem js.
Wenn das element dynamisch erstellt, müssen Sie die jQuery -
.on()
Methode. Dann können Sie:Beachten Sie, dass jQuery verwenden, müssen Sie die jQuery-Bibliothek in die
<head>
- tags, also:Habe ich zwei Schaltflächen erstellt, die ändern die div-demo Wert entsprechend der Taste
innerHTML
.Ich hoffe, das hilft.
HTML:
Lösung mit jQuery:
Lösung mit reinem JavaScript (Hinweis: Sie benötigen zum Durchlaufen hier, ich bin immer nur der erste button. Legen Sie einfach eine Schleife, die hier für die Größe des Dokuments.getElementsByTagName('button') und das wird befestigen für alle Tasten):
Erhalten Sie Ihren button generiert werden, mit so etwas wie dies:
javascript:
onlick
im html ist nie das richtige zu tun.