javascript - not - ¿Cuál es la diferencia entre '$(este)' y 'este'?




getelementsbytagname javascript ejemplo (5)

Cuando se usa jQuery , se recomienda usar $(this) generalmente. Pero si conoce (debe aprender y conocer) la diferencia, a veces es más conveniente y rápido usar solo this . Por ejemplo:

$(".myCheckboxes").change(function(){ 
    if(this.checked) 
       alert("checked"); 
});

es más fácil y más puro que

$(".myCheckboxes").change(function(){ 
      if($(this).is(":checked")) 
         alert("checked"); 
});

Actualmente estoy trabajando en este tutorial: Introducción a jQuery

Para los dos ejemplos a continuación:

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

Observe que en el primer ejemplo, usamos $(this) para adjuntar un texto dentro de cada elemento li . En el segundo ejemplo, utilizamos this directamente al restablecer el formulario.

$(this) parece ser usado mucho más a menudo que this .

Mi conjetura es que en el primer ejemplo, $() está convirtiendo cada elemento li en un objeto jQuery que entiende la función append() mientras que en el segundo ejemplo, se puede llamar a reset() directamente en el formulario.

Básicamente necesitamos $() para funciones especiales solo de jQuery.

¿Es esto correcto?


Sí, al usar $(this) , habilitaste la funcionalidad jQuery para el objeto. Con solo usar this , solo tiene una funcionalidad genérica de Javascript.


Sí, solo necesitas $() cuando estás usando jQuery. Si quieres la ayuda de jQuery para hacer cosas DOM, ten esto en cuenta.

$(this)[0] === this

Básicamente, cada vez que obtiene un conjunto de elementos, jQuery lo convierte en un objeto jQuery . Si sabes que solo tienes un resultado, estará en el primer elemento.

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

Y así...


$() es la función constructora de jQuery.

this es una referencia al elemento DOM de invocación.

Básicamente, en $(this) , solo está pasando this en $() como parámetro para poder llamar a los métodos y funciones de jQuery.


esta referencia es un objeto javascript y $ (esto) que se utiliza para encapsular con jQuery.

Ejemplo =>

// Getting Name and modify css property of dom object through jQuery
var name = $(this).attr('name');
$(this).css('background-color','white')

// Getting form object and its data and work on..
this = document.getElementsByName("new_photo")[0]
formData = new FormData(this)

// Calling blur method on find input field with help of both as below
$(this).find('input[type=text]')[0].blur()

//Above is equivalent to
this = $(this).find('input[type=text]')[0]
this.blur()

//Find value of a text field with id "index-number"
this = document.getElementById("index-number");
this.value

or 

this = $('#index-number');
$(this).val(); // Equivalent to $('#index-number').val()
$(this).css('color','#000000')




this