2011-01-18 10 views

Respuesta

11

Voy a responder a la pregunta en varias partes.

En JavaScript (no solo jQuery, sino todo el JavaScript), la palabra clave del documento es un identificador del objeto que contiene HTMLDocument. Es posible utilizar esta manija en los siguientes escenarios ...

// Get the current web address 
alert(document.location.href); 

Cuando se pasa el documento a jQuery, se analiza el documento en un objeto jQuery.

Cuando pasa el selector "html" a jQuery, utiliza esta cadena para buscar cualquier elemento en el modelo de objetos del documento que coincida con el selector (en todos los casos, habrá un elemento html).

En realidad, no se observa una diferencia de comportamiento entre ellos:

$(document).click(function() { alert('blah'); }); 
$('html').click(function() { alert('blah'); }); 
$('body').click(function() { alert('blah'); }); 

Pero la diferencia técnica es que el documento es un objeto y 'html' es una cadena que se utiliza para buscar una elemento. Tanto el objeto como los elementos coincidentes se convierten en objetos jQuery.

Como todos añaden un controlador de evento de clic a la parte "visible" de la página, que es la única parte de la página en la que un usuario puede hacer clic de forma realista.

+0

buena explicación – kobe

+0

gracias muy informativos :) – Elgoog

+0

Gracias - siempre feliz de ayudar :) – Fenton

0

intento de apagar el innerHtml tanto, cuál es el resultado? yo Opino (pero han't probado) que

  • document es realmente el documento completo, incluyendo <html> y todos los elementos que lo integran
  • html referencias al <html> -tag, por lo que sólo habrá la <head> y en <body> su salida, no el <html> -Tag sí

pero: su código (la adición de un clic-controlador) no habría ninguna diferencia, porque al hacer clic en el documento siempre será un clic en el <html> (siempre y cuando su sitio sea válido y tiene un <html> -tag)

0

Seleccionan lo mismo. La única diferencia es cómo lo encuentra el motor sizzle de jQuery. El primer caso es un caso especial en la función jQuery init, el segundo usando el getElementsByTagName

Cuestiones relacionadas