2011-01-25 2 views
17

Sembra che i selettori jQuery non funzionino nella Chrome Console. Qualsiasi tipo di selettore restituisce "null". Gli script eseguono correttamente il javascript, comunque.jQuery in Chrome Console (8.0.552.237)

Qualcun altro ha notato questo cambiamento o è a conoscenza di una correzione.

Grazie.

+2

potete inserire esempi di codice non funziona? –

+1

in breve, usa jQuery in console invece di $ – xster

+0

a 2012-01-23 l'accesso a jquery via $ ora funziona in Chrome 16.0 – mozboz

risposta

17

Ho scoperto la causa di questo in my own question.

La console inietta la propria funzione (solo una scorciatoia) per document.getElementById(), alias di $, che ombreggia jQuery di $. Un modo semplice per controllare questo: quando sei a un punto di interruzione, e jQuery sembra essere rotto, confrontare quanto segue nella console:

  • jQuery
  • $
  • window.$

Il primo e ultimo sarà jQuery corretto, il locale $ è qualcosa del tipo:

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

Questo perché eseguire il codice dalla console è avvolto in una dichiarazione with:

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

e window._commandLineApi.$ è la funzione che le ombre jQuery.

stupid chrome


trovato il bug in Chromium per questo: http://code.google.com/p/chromium/issues/detail?id=70969

+3

oppure, digita semplicemente 'jQuery === $'. Restituisce vero se jQuery ha il controllo del segno $. – Yahel

+1

(e, jQuery restituirà una funzione di aspetto diverso, a seconda della versione di jQuery in esecuzione, quindi questo è più semplice) – Yahel

+0

@yc: anche questo funzionerà. –

0

basta eseguire il seguente comando sulla console per farlo funzionare:

$ = jQuery