133 votes

Qu'est-ce que "this" en JavaScript onclick?

ici

Que signifie this dans le script?

4 votes

@JMCF125 Il a quand même réussi à être utile. J'ai cherché sur Google comment obtenir l'élément sur lequel on a cliqué dans un événement onclick, et je suis tombé ici, où j'ai trouvé la réponse.

0 votes

Qu'est-ce que le javascript: fait ? pourquoi n'est-ce pas comme ceci ici

1 votes

@J3STER Le préfixe "javascript:" est incorrect dans onclick. Vous pouvez trouver l'explication dans la réponse de Tim Down ci-dessous.

105voto

TM. Points 20051

Dans le cas que vous mentionnez, this représente l'élément DOM HTML.

Donc ce serait l'élément sur lequel on a cliqué.

5 votes

Quelqu'un pourrait-il faire un lien vers la spécification? Un simple regard sur w3.org/TR/DOM-Level-3-Events n'a rien donné.

35voto

Stephan202 Points 27707

Il fait référence à l'élément dans le DOM auquel appartient l'attribut onclick:

function func(e) {
  $(e).text('there');
}

ici

(Cet exemple utilise jQuery.)

23voto

Tim Down Points 124501

La valeur des attributs des gestionnaires d'événements tels que onclick devrait simplement être du JavaScript, sans aucun préfixe "javascript:". Le pseudo-protocole javascript: est utilisé dans une URL, par exemple :

ici

Vous devriez utiliser la forme onclick="func(this)" de préférence à cela. Notez également que dans mon exemple ci-dessus en utilisant le pseudo-protocole javascript: "this" se référera à l'objet window plutôt qu'à l'élément .

1 votes

Intéressant downvote, bien que je suppose, en toute rigueur, que cette réponse ne fait qu'offrir des conseils autour de la question plutôt que d'y répondre directement.

0 votes

Oui... tu n'as pas vraiment répondu à la question :-/ rien de personnel!

1 votes

@Dave: D'accord. Au moment où j'ai écrit ceci, la question principale avait déjà été répondue. Ma réponse aurait probablement dû être un commentaire mais je soupçonne que je n'avais peut-être pas assez de points de réputation pour ajouter un commentaire à ce moment-là. On apprend de nos erreurs.

3voto

ichiban Points 4568

Lors de l'appel d'une fonction, le mot "this" est une référence à l'objet qui a appelé la fonction.

Dans votre exemple, il s'agit d'une référence à l'élément ancre. À l'autre extrémité, l'appel de fonction accède ensuite aux variables membres de l'élément à travers le paramètre qui a été passé.

2voto

Gumbo Points 279147

this fait référence à l'objet auquel appartient la méthode onclick. Ainsi, à l'intérieur de func, this serait le nœud DOM de l'élément a et this.innerText serait ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X