Comment trouver l'identifiant du bouton sur lequel on clique?
<button id="1" onClick="reply_click()"></button>
<button id="2" onClick="reply_click()"></button>
<button id="3" onClick="reply_click()"></button>
function reply_click()
{
}
javascript
html
Bin Chen
la source
la source
Réponses:
Vous devez envoyer l'ID comme paramètres de fonction. Fais-le comme ça:
Cela enverra l'ID
this.id
queclicked_id
vous pouvez utiliser dans votre fonction. Voyez-le en action ici.la source
event.target.id
(pour moi, Firefox et IE la lançaient), c'est une excellente solution qui fonctionne dans les trois principaux navigateurs.En général, les choses sont plus faciles à organiser si vous séparez votre code et votre balisage. Définissez tous vos éléments, puis dans votre section JavaScript, définissez les différentes actions à effectuer sur ces éléments.
Lorsqu'un gestionnaire d'événements est appelé, il est appelé dans le contexte de l'élément sur lequel vous avez cliqué. Ainsi, l'identifiant cela fera référence à l'élément DOM sur lequel vous avez cliqué. Vous pouvez ensuite accéder aux attributs de l'élément via cet identifiant.
Par exemple:
la source
UTILISATION DE PURE JAVASCRIPT: Je sais qu'il est tard mais peut être utile pour les futures personnes:
Dans la partie HTML:
Dans le contrôleur Javascipt:
De cette façon, nous n'avons pas à lier l'id de l'élément au moment d'appeler la fonction javascript.
la source
this
comme paramètre dansonClick
(en fait, n'utilisant pas onClick mais onChange, est-ce peut-être le problème?). J'ai également vérifié un peu et il semble y avoir beaucoup de confusion à propos de cetteevent
variable - est-ce un paramètre "implicite" ou doit-il être déclaré explicitement comme argument (c'estfunction reply_click(event)
-à- dire que j'ai également vu dans certains endroits)? Est-il uniquement disponible lors de l'affectation de l'écouteur d'événements viaaddEventListener
...? J'ai joué, mais je n'ai pas pu le faire fonctionner.(Je pense que l'
id
attribut doit commencer par une lettre. Cela pourrait être faux.)Vous pouvez opter pour une délégation d'événement ...
... mais cela vous oblige à être relativement à l'aise avec le modèle d'événement loufoque.
la source
e
argument est généré automatiquement. Si ce n'est pas le cas, alors nous devons traiter avec IE6-8, qui fournit à la place cet objet utile viawindow.event
.la source
la source
Comment le faire sans JavaScript en ligne
il est généralement recommandé d'éviter JavaScript en ligne, mais il existe rarement un exemple de la façon de le faire.
Voici ma façon d'attacher des événements aux boutons.
Je ne suis pas entièrement satisfait de combien de temps la méthode recommandée est comparée à un simple
onClick
attribut.Navigateurs 2014 uniquement
Navigateurs 2013 uniquement
Cross-browser
Cross-browser avec jQuery
Vous pouvez l'exécuter avant que le document ne soit prêt, en cliquant sur les boutons, cela fonctionnera car nous attachons l'événement au document.
Voici un jsfiddle
Pour une raison étrange, la
insertHTML
fonction ne fonctionne pas, même si elle fonctionne dans tous mes navigateurs.Vous pouvez toujours remplacer
insertHTML
pardocument.write
si cela ne vous dérange pas ses inconvénientsSources:
la source
Si vous ne voulez pas passer d'arguments à la fonction onclick, utilisez simplement
event.target
pour obtenir l'élément cliqué:la source
Avec du javascript pur, vous pouvez effectuer les opérations suivantes:
vérifier sur JsFiddle
la source
Vous pouvez simplement le faire de cette façon:
la source
id=obj;
et avoir justealert(obj);
la source
la source
Bouton 1 Bouton 2 Bouton 3
la source
Désolé c'est une réponse tardive mais c'est vraiment rapide si vous faites ceci: -
Cela obtient l'ID de n'importe quel bouton cliqué.
Si vous voulez simplement obtenir la valeur du bouton cliqué à un certain endroit, mettez-les simplement dans un conteneur comme
et changez le code en: -
J'espère que ça aide
la source
Cela enregistrera l'identifiant de l'élément sur lequel vous avez cliqué: addFields.
la source