Foros del Web » Programando para Internet » Jquery »

Que significa esto $(this) en jquery

Estas en el tema de Que significa esto $(this) en jquery en el foro de Jquery en Foros del Web. Hola muy buenas a toda la gente de forosdelweb.com bueno como el titulo indica solo quiero saber cuando se usa esto $(this) en jquery vi ...
  #1 (permalink)  
Antiguo 28/07/2011, 11:55
 
Fecha de Ingreso: enero-2010
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 1
Que significa esto $(this) en jquery

Hola muy buenas a toda la gente de forosdelweb.com bueno como el titulo indica solo quiero saber cuando se usa esto $(this) en jquery vi como parte de un codigo aqui se los dejo muchas gracias.

form.find('input[type=button],input[type=submit]').each(function(){

var originalButton = $(this),
  #2 (permalink)  
Antiguo 28/07/2011, 12:28
Avatar de mtreik  
Fecha de Ingreso: marzo-2011
Ubicación: Yecla (Murcia)
Mensajes: 41
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Que significa esto $(this) en jquery

Si, es muy sencillo, hace referencia al "objeto" javascript que está llamando o usando la función, pero mira, te lo explico con un ejemplo muy sencillo:

Código Javascript:
Ver original
  1. $(".ejemplo").click(function() {
  2.             $(this).hide();    
  3.         });

Esta función será llamada siempre que hagas click en un elemento que tenga asignada la clase ejemplo y entonces la ocultará, es decir, si tienes en tu HTML 4 elementos con la clase ejemplo, solo ocultará el elemento en el que hagas click.

Espero que lo hayas entendido!!
__________________
Marcelo López Santa
------------------------
Diseñador y programador web
www.sixtudio.com
  #3 (permalink)  
Antiguo 28/07/2011, 13:01
 
Fecha de Ingreso: enero-2010
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Que significa esto $(this) en jquery

Lo entendi perfectamente, muchas gracias, bueno aun sigo en linea si tienes tiempo PORFAVOR ayudame con este codigo, gracias.

$.fn.zinePretifyForm = function(){ // esta parte no entiendo
return this.each(function(){

var form = $(this);

form.find('input[type=button],input[type=submit]').each(function(){

// esta parte no entiendo
var originalButton = $(this),
button = $('<span>',{
className : 'button',
html : originalButton.val()+'<span></span>'
});

// y esta parte no entiendo
button.insertAfter(originalButton.hide());

button.click(function(){
originalButton.click();
});

});

Gracias man por tu paciencia.
  #4 (permalink)  
Antiguo 29/07/2011, 09:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Que significa esto $(this) en jquery

ahi estas extendiendo el objeto jquery, el this es un objeto jquery que tiene los elementos seleccionados, por ejemplo cuando haces $('div') te va a devolver todos los div que selecciona

el return es para devolver esos elementos y poder encadenar métodos

por ejemplo
Código HTML:
Ver original
  1.   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
  2.   <script>
  3.     $( function(){
  4.         $('#unDiv, #unSpan').colorearElementos().css("border", "1px solid #000");
  5.     });
  6.  
  7.     jQuery.fn.colorearElementos = function(){
  8.         return this.each( function() {
  9.             $(this).css("background", "red");
  10.         });
  11.     };
  12.     </script>
  13. </head>
  14. <div id="unDiv">el div</div>
  15. <span id="unSpan">el span</span>
  16. </body>
  17. </html>

en el each recorre los elementos que fueron seleccionados, dentro del each el this hace referencia a cada uno de esos elemtos

si no retornas nada esto .css("border", "1px solid #000"); no funcionaría

insertAfter http://api.jquery.com/insertAfter/

en tu código seguramente que el método selecciona elementos form, si seleccionaron 3 form se hace un bucle por cada uno, en cada uno se hace otro para recorrer los elementos que contiene la seleccion form.find('input[type=button],input[type=submit]')

Última edición por Dany_s; 29/07/2011 a las 09:31

Etiquetas: javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:34.