Version jQ : jquery-1.7.2.js
<div id="box">test</div>
<script> $(function(){ $('#box').click(function(){ //alert(this.html()); // 报错 alert(this.innerHTML);// test alert($(this).html()); // test }); });</script>
Excusez-moi, après l'avoir passé via $('#box'), je je l'ai jQueryobject, pourquoi cela correspond-il à DOM object, mais $(this) est un objet jQuery ? Merci!
Il faut savoir qu'il y a js sans jquery, et qu'il n'y a pas de jquery sans js. C'est le truc de js. Ceci dans l'environnement d'exécution fonction appartient à js natif. Comment peut-il vous diriger vers l'objet jquery. Porter $(this) gilet est l'objet jquery.
this fait référence à comme objet d'environnement pour l'exécution de la fonction. Par exemple, lorsqu'il est appelé globalement, this est window. Donc votre this n'est pas renvoyé par $("#box"), ce n'est pas un objet JQ, mais l'objet dom du div qui appelle cette fonction. Veuillez comprendre cela attentivement. Taper sur un téléphone portable est très difficile. Si vous ne comprenez toujours pas quelque chose, allumez l'ordinateur demain et il dira que
$('#box') a renvoyé l'objet JQuery, vous pouvez donc n'appelez la méthode click() que plus tard. Veuillez noter que cette étape est très importante pour
var $box = $('#box'); $box.click(function(){ //TODO});
, l'objet environnement d'exécution de la fonction n'a rien à voir avec l'objet obtenu par votre code. pour lier un événement à ce DOM Lorsque l'événement
est déclenché, c'est juste le DOM
$(this) ne change pas l'objet DOM. Il est juste enveloppé une fois. , tout comme ajouter une couche de shell, le transformer en objet JQuery, afin que les méthodes JQuery puissent être utilisées, au lieu de rechercher le DOM comme le sélecteur entrant, c'est donc toujours le div.box qui déclenche actuellement cet événement. JQuery enveloppé peut être restauré dans un objet DOM.
Regardez le code suivant pour obtenir l'objet qui a déclenché l'événement via l'objet événement :
$('.box').click(function(event){ console.log(event.target); console.log(event.target==this);//非事件冒泡情况下为true console.log($(this).get(0)==this);//true});
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!