Wat is het verschil tussen '$(this)' en 'this'?

Ik ben momenteel bezig met deze tutorial: Aan de slag met jQuery

Voor de twee voorbeelden hieronder:

$("#orderedlist").find("li").each(function (i) {
    $(this).append(" BAM! " + i);
});
$("#reset").click(function () {
    $("form").each(function () {
        this.reset();
    });
});

Merk op dat we in het eerste voorbeeld $(this) gebruiken om wat tekst toe te voegen aan elk li element. In het tweede voorbeeld gebruiken we this direct bij het resetten van het formulier.

$(this) lijkt veel vaker gebruikt te worden dan this.

Ik denk dat in het eerste voorbeeld $() elk li element omzet in een jQuery object dat de append() functie begrijpt, terwijl in het tweede voorbeeld reset() direct op het formulier kan worden aangeroepen.

In principe hebben we $() nodig voor speciale jQuery-only functies.

Is dit correct?

Oplossing

Ja, je hebt $() alleen nodig als je jQuery gebruikt. Als je jQuery's hulp wilt om DOM dingen te doen moet je dit in gedachten houden.

$(this)[0] === this

In principe elke keer dat je een set elementen terug krijgt maakt jQuery er een jQuery object van. Als je weet dat je maar één resultaat hebt, zal het in het eerste element zitten.

$("#myDiv")[0] === document.getElementById("myDiv");

En zo verder...

Commentaren (3)

Ja, je hebt $(this) nodig voor jQuery functies, maar wanneer je basis javascript methoden van het element wilt benaderen die geen gebruik maken van jQuery, kun je gewoon this gebruiken.

Commentaren (0)

Ja, door $(this) te gebruiken, heb je jQuery functionaliteit voor het object ingeschakeld. Door alleen this te gebruiken, heeft het alleen generieke Javascript functionaliteit.

Commentaren (0)