2011-01-25 21 views
17

Parece que los selectores de jQuery no funcionan en la Consola de Chrome. Cualquier tipo de selector devuelve "nulo". Sin embargo, los scripts ejecutan correctamente el javascript.jQuery in Chrome Console (8.0.552.237)

¿Alguien más ha notado este cambio o conoce una solución?

Gracias.

+2

Se puede publicar ejemplos de código eso no está funcionando? –

+1

en resumen, use jQuery en la consola en lugar de $ – xster

+0

en 2012-01-23 el acceso a jquery a través de $ ahora está funcionando en Chrome 16.0 – mozboz

Respuesta

17

Descubrí la causa de esto en my own question.

La consola inyecta su propia función (sólo una forma abreviada) para document.getElementById(), alias a $, cuales sombras de jQuery $. Una forma sencilla de comprobar esto: cuando estás en un punto de interrupción, y jQuery parece estar roto, comparar lo siguiente en la consola:

  • jQuery
  • $
  • window.$

El el primero y el último serán jQuery propiamente dicho, el $ local es algo así como:

function() { 
    return document.getElementById.apply(document, arguments) 
} 

Esto se debe a ejecutar código desde la consola está envuelto en un comunicado with:

with (window ? window.console._commandLineApi : {}) { 
with (window) { 
    // the actual code you typed in here 
} 
} 

y window._commandLineApi.$ es la función que ensombrece jQuery.

stupid chrome


encontró el error en cromo para esto: http://code.google.com/p/chromium/issues/detail?id=70969

+3

o, simplemente escriba 'jQuery === $'. Volverá a ser verdadero si jQuery tiene control del signo $. – Yahel

+1

(y, jQuery devolverá una función de aspecto diferente, dependiendo de la versión de jQuery que esté ejecutando, así que esto es más fácil) – Yahel

+0

@yc: eso funcionará también. –

0

Sólo tiene que ejecutar el siguiente comando en la consola para que funcione:

$ = jQuery