2010-07-20 7 views
16

¿Cuál es la diferencia entre estos dos?

$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

¿Es algo prototipo vs jQuery?

Respuesta

25

Ambos hacen lo mismo. La mayoría de las bibliotecas usan $ como una forma más corta de acceder a las funciones dentro de las bibliotecas.

jQuery tiene muchas maneras de acceder a su biblioteca:

window.jQuery('#SPANID').html("Some Text"); 

window.$('#SPANID').html("Some Text"); 

jQuery('#SPANID').html("Some Text"); 

$('#SPANID').html("Some Text"); 

jQuery o window.jQuery se pueden utilizar en lugar de $ si estuviera utilizando más de una biblioteca.

JQuery tiene una función llamada jQuery.noConflict(); que renuncia al control de jQuery de la variable $ haciendo que $ no funcione con jQuery.

Esto sería bueno para usar más de una biblioteca que use $.

Así que cuando usa jQuery haría jQuery('#message').addClassName('read'); y $('#message').addClassName('read'); al usar Prototype.

(Este bit siguiente es un poco fuera de tema, pero ayudará si desea utilizar $ con varias bibliotecas)

Aunque no existe una manera de utilizar $ en diferentes bibliotecas, al mismo tiempo, el uso de funciones anónimas. de este modo:

(function($){ 


})(jQuery); 


(function($){ 


})(Prototype); 

Cada una de las funciones pasa el objeto de biblioteca, por lo jQuery y Prototype, ya que la variable $ que permite el uso de usar con muchas bibliotecas. Si contiene su código para cada biblioteca dentro de cada uno, funcionará.

Por ejemplo:

(function($){ 
    $(document).ready(function(){ 

     $('#message').addClass('read'); 

    }); 

})(jQuery); 


(function($){ 
    document.observe("dom:loaded", function() { 

     $('message').addClassName('read'); 
     //Or 
     $$('#message').addClassName('read'); 

    }); 

})(Prototype); 
+1

+1 esta es una buena respuesta completa si un poco fuera del tema :) – Patricia

+1

@Tomgrohl, gracias por su contribución. Es realmente simple de entender ahora. – shailesh

+0

@Patricia True. Lo aprendí el otro día y pensé que valía la pena mencionar :) –

16

si está utilizando más de una biblioteca de JavaScript, puede haber conflictos si solo usa $. usando jQuery los evitará.

+5

Esta es la respuesta correcta. Además, jQuery tiene un método noConflict() que se puede llamar para renunciar al control de jQuery de la variable $, lo que le permite jugar muy bien en la zona de pruebas junto con otros marcos. http://api.jquery.com/jQuery.noConflict/ – twerq

+3

Esta es solo la respuesta correcta si también usas .noConflict. – EndangeredMassa

+0

¿Qué quiere decir con "usar más de una biblioteca de JavaScript"? ¿Eso significa usar más que javascript? ¿Podría darme un ejemplo en el que puede haber conflictos para comprender bien los conceptos básicos? – shailesh

3

No hay diferencia en realidad, salvo por el hecho de que jQuery('SPANID') debería ser en realidad jQuery('#SPANID')

$ es sólo una forma abreviada de jQuery

EDIT: Tengo entendido que la diferencia real entre $ y jQuery está en el espacio de nombres possibile colisión con otras bibliotecas. Aparte de eso, funcionan de la misma manera.

+2

¿Ninguna diferencia? ¿Estas seguro de eso? – RightSaidFred

+0

había un tipo. debería ser jQuery ('# SPANID') – shailesh

+0

'$' es un alias de 'jQuery', por lo que se comporta exactamente igual ... excepto' $ 'tiene un mayor riesgo de colisiones de espacio de nombres (con otras bibliotecas js). – kingjeffrey

1

Utilizando el explícito "jQuery" evitaría un choque si pasó a hacer referencia también otra biblioteca que utiliza "$"

6

Es un alias para la misma cosa. Si desea utilizar jQuery en la misma página que otras bibliotecas que usan el símbolo $, puede usar jQuery con la opción .noConflict(). Esto le permitirá usar $ para la otra biblioteca y jQuery para la biblioteca jQuery.

0

La diferencia es esta: $ a menudo es utilizado por otras bibliotecas o construcciones de JavaScript, por lo que podría sobrescribirse y no hacer lo que usted espera. jQuery siempre se refiere a la biblioteca de jQuery, por lo que hará lo que esperas.

En entornos donde no se puede garantizar que $ no se sobrescribirá por otra cosa, usando jQuery o jQuery.noConflict() es más seguro que $.

0

Usa jQuery cuando tienes otra biblioteca que ya está definida $. Utilice $ como el atajo conveniente es cuando no lo hacen (o dentro de los alcances de la función en la que no tiene que preocuparse por ello. :)

Aunque personalmente, creo que jq haría un bonito abreviada (el mismo número de pulsaciones de teclas como $, probablemente un poco menos común).

0

No es solo una abreviatura, pero está hecha para otras bibliotecas de JavaScript que puedan estar usando el carácter $ y para evitar confusiones o conflictos, se prefiere utilizar la palabra clave jquery.

0

encontrar más detalles aquí: http://api.jquery.com/ready/

El $ es un alias para el que jQuery (jQuery) es una biblioteca de Javascript. Los complementos son el uso de la biblioteca de una manera específica que crea un uso específico de la biblioteca y extiende su funcionalidad.

Algunos ejemplos de uso:

"regular" de código jQuery:

$(function(){ 
     // my jquery code here 
    }); 

NOTA: esta es una gestión de eventos es decir, que se ejecuta en el evento ready DOM.

plug-in de código:

(function($){ 
    //theplugin code here 
})(jQuery); 

Esto permite el uso de los $ dentro sin confusión porque dice "asignar jQuery para el $ aprobada en la función ($)


$(function(){ 
    //stuff here such as jQuery code 
}); 

como en

$(function(){ 
    $("#mybutton").click(function() { 
    alert("hi");) 
)}; 
}); 

Es lo mismo que:

(function($) { 
    $(document).ready(function() { 
    $("#mybutton").click(function() { 
     alert("hi"); 
    )}; 
    }) 
})(jQuery) 

pero quizás no tan bueno como (y sin la unión (jQuery) al final), que sólo entra en juego si utiliza otras bibliotecas que utilizan el $.


$ es sólo un personaje, así que puede tener variables tales como:

myvariable = 0; $ myvariable = 0; my $ variable = 0;

Nada especial aquí, simplemente usando otro personaje.

Me da la casualidad de que un uso común de $ es $ = jQuery; Otras bibliotecas usan este caracter como una taquigrafía común (tipo alias), así el no conflicto y el uso del nombre completo (jQuery).

Cuestiones relacionadas