¿Cuál es la diferencia entre '$(esto)' y 'esto'?
Actualmente estoy trabajando en este tutorial: Getting Started with jQuery
Para los dos ejemplos siguientes:
$("#orderedlist").find("li").each(function (i) {
$(this).append(" BAM! " + i);
});
$("#reset").click(function () {
$("form").each(function () {
this.reset();
});
});
Fíjate que en el primer ejemplo, usamos $(this)
para añadir algo de texto dentro de cada elemento li
. En el segundo ejemplo usamos this
directamente al reiniciar el formulario.
Parece que $(this)
se utiliza mucho más a menudo que this
.
Supongo 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 reset()
puede ser llamado directamente en el formulario.
Básicamente necesitamos $()
para funciones especiales de jQuery.
¿Es esto correcto?
560
3
Sí, sólo se necesita
$()
cuando se utiliza jQuery. Si quieres la ayuda de jQuery's para hacer cosas del DOM sólo tienes que tener esto en cuenta.Básicamente cada vez que recuperas un conjunto de elementos jQuery lo convierte en un objeto jQuery. Si sabes que sólo tienes un resultado, va a estar en el primer elemento.
Y así sucesivamente...
Sí, necesitas
$(this)
para las funciones jQuery, pero cuando quieras acceder a métodos javascript básicos del elemento que no usan jQuery, puedes usar simplementethis
.Sí, al usar
$(this)
, has habilitado la funcionalidad de jQuery para el objeto. Al usar sólothis
, sólo tiene la funcionalidad genérica de Javascript.