Was ist der Unterschied zwischen $(this)
und this
in jQuery, und warum geben sie manchmal das gleiche Ergebnis und andere Zeiten verhalten sich anders?
Antwort
$(this)
Wraps this
mit der jQuery-Funktionalität.
Zum Beispiel dieser Code würde fehlschlagen:
$('.someDiv').onClick(function(){
// this refers to the DOM element so the following line would fail
this.fadeOut(100);
});
wir this
in jQuery So wickeln:
$('.someDiv').onClick(function(){
// wrap this in jQuery so we can use jQuery fadeOut
$(this).fadeOut(100);
});
Wenn in Ihrem aktuellen Kontext wenn die this
kein Objekt jQuery ist, können Sie machen es ist ein jQuery-Element, indem es um $()
gewickelt wird. Wenn Ihr Element bereits ein Ergebnis des jQuery-Ausdrucks ist, ist das this
in diesem Fall bereits ein jQuery-Objekt. In diesem Fall funktionieren beide ähnlich.
$(this)
schmückt jedes Objekt this
Punkte mit den jQuery-Funktionen. Der typische Anwendungsfall ist, dass this
auf ein DOM-Element (z. B. <div>
) verweist. Mit $(this)
können Sie dann alle jQuery-API-Funktionen für diese <div>
verwenden.
Wenn this
bereits auf ein jQuery-Objekt verweist - in der Regel ein jQuery-dekoriertes DOM-Objekt - dann hat das Aufrufen von $(this)
keinen Effekt, da es bereits eingerichtet ist.
this
ist eine JavaScript-Variable, die immer dann erstellt wird, wenn Sie sich in einer Funktion befinden, die an ein Objekt angehängt ist. In diesen Fällen bezieht sich this
auf dieses Objekt.
$(this)
gibt ein jQuery-Objekt zurück, mit dem Sie jQuery-Funktionen aufrufen können, gilt aber nur für this
.
Zum Beispiel, wenn Sie einen Click-Handler für alle Anker gesetzt:
$('a').click(function() {
console.log(this.href) ;
}) ;
dann die this
, bezieht sich auf den Anker, der das Click-Ereignis (Funktion) angebracht ist.
für Sie ein bisschen besser zu verstehen, holen Sie sich einen Debugger von Schokoladenriegel besorgt, wie Google Chrome und das tun ..
$('a').click(function(){
console.log(this); //DO
console.log($(this)); //JO
});
dies wird Ihnen zeigen, was der Unterschied ist :)
In JavaScript bezieht sich immer auf den "Eigentümer" der auszuführenden Funktion. Die Verwendung von $ (this) umschließt nur den Eigentümer, so dass alle jQuery-Operationen erweitert und für ihn verfügbar sind.
Bedenken Sie:
$links = $('#content a');
$links.click(function() {
link = this;
$link = $(this); //jQuery wrapped object.
alert(link.getAttribute('href'));
alert($link.attr('href')); //we can use the attr() function from jQuery
});
Sie in der Regel die gleichen Ergebnisse liefern, da der Besitzer der gleiche ist, nur, wenn sie von jQuery wickelte es mit den jQuery-Funktionen arbeiten kann.
$ (this) == das? interessant.
Dies darf nicht durch DOM-Ereignis passieren.
- 1. jQuery: Was ist der Unterschied zwischen '$ (this)' und 'this'?
- 2. Was ist der Unterschied zwischen $ (this) und diesem
- 3. Was ist der Unterschied zwischen "this", "$ this" und "$ (this)"?
- 4. Unterschied zwischen $ (this) und diese in jquery
- 5. Was ist der Unterschied zwischen this.click() und $ (this) .click()?
- 6. Jquery - Unterschied zwischen event.target und diesem Schlüsselwort?
- 7. Unterschied zwischen $ (this) .index() und element.index (this)
- 8. Was ist der Unterschied zwischen jquery und jquery UI?
- 9. Unterschied zwischen diesem und diesem @ Eintrag?
- 10. Was ist der Unterschied zwischen get() und eq() in jquery?
- 11. Was ist der Unterschied zwischen find() und children() in jquery?
- 12. Was ist der Unterschied zwischen Toggle und SlideToggle in jQuery?
- 13. in jQuery was ist der Unterschied zwischen $. MyFunction und $ .fn.myFunction?
- 14. Was ist der Unterschied zwischen `&` und `ref`?
- 15. Was ist der Unterschied zwischen $ und $$?
- 16. Unterschied zwischen 'super' und 'this'
- 17. Was ist der Unterschied zwischen `==` und `ist`?
- 18. Was ist der Unterschied zwischen Jquery Lazyload und JAIL?
- 19. Was ist der Unterschied zwischen jQuery leben() und Livequery-Plugin?
- 20. Was ist der Unterschied zwischen jQuery Space und> Selektoren?
- 21. Was ist der Unterschied zwischen $ .add und $ .append JQuery
- 22. Was ist der Unterschied zwischen jQuery replaceWith() und html()?
- 23. Was ist der Unterschied zwischen/* ... */und/** ... */
- 24. Was ist der Unterschied zwischen + = und = +?
- 25. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 26. Was ist der Unterschied zwischen:.! und: r !?
- 27. Was ist der Unterschied zwischen Verilog! und ~?
- 28. Was ist der Unterschied zwischen Difftime und '-'?
- 29. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 30. Was ist der Unterschied zwischen $ (...) und `...`
Wann geben sie "* das gleiche Ergebnis *"? –