37

Stavo lavorando con gli strumenti di sviluppo di google chrome su una pagina senza jQuery (o qualsiasi altra libreria che utilizza il segno $ come scorciatoia). Quando ho controllato $ dalla console (semplicemente digitando dentro e premendo invio), ho ottenuto questo:

$ 
function() { [native code] } 

Così, Chrome ha una funzione nativa che possono fare riferimento $. Solo Chrome sembra avere questo e non posso accedervi tramite window['$'] né tramite document['$'] o this['$'].

Non sono stato in grado di scoprire quale sia questa funzione. Sai cosa fa e magari avere qualche informazione di base su questo? Grazie in anticipo!

+0

Le informazioni sono disponibili su https://developers.google.com/chrome-developer-tools/docs/console e https://getfirebug.com/wiki/index.php/Command_Line_API. –

+0

Quale URL e quale versione di Chrome? Ho trovato una pagina che non usa jQuery e non ha alias '$' (era sorprendentemente difficile), ma non vedo 'function() {[codice nativo]}'. Ti sei fermato a un punto di interruzione? –

+1

@Matt Ball È sufficiente aprire 'about: blank', aprire la console e digitare' $', quindi premere invio. –

risposta

4

Questo è cambiato ancora, anche solo l'anno scorso.

La console devtools fornisce $ come alias su document.querySelector, insieme a many other things; ecco una lista Tratto:

  • $(selector) restituisce il riferimento al primo elemento DOM con il selettore CSS specificato. Questa funzione è un alias per la funzione document.querySelector().
  • $$(selector) restituisce un array di elementi che corrispondono al selettore CSS specificato. Questo comando equivale a chiamare document.querySelectorAll().
  • $_ restituisce il valore dell'espressione valutata più recentemente.
  • I comandi $0, $1, $2, $3 e $4 funzionano come un riferimento storico per gli ultimi cinque elementi DOM controllati entro il pannello Elementi o gli ultimi cinque oggetti mucchio JavaScript selezionato nel pannello dei profili.

... e un mucchio di altri.

Nota come si chiama $ un alias di document.querySelector, ma dice $$ è "equivalente" a chiamare document.querySelectorAll. Né sembra essere letteralmente vero; $ === document.querySelector è false e $$ restituisce un array , non uno NodeList.

+1

Grazie! Mantenere questa domanda aggiornata sarà utile per i futuri visitatori. :) –

5

Ther're due selettori a ispettori Webkit, lo stesso che Mootools uno: $ e $$

Potete trovare alcune informazioni su di esso, here

Sono juste qui per aiutarvi a debug.

24

È una delle funzioni di Chrome Developer Tools (quindi non disponibile dalla pagina). È possibile vedere documentation for it on the Console page (anche se questo dice solo che implementa il Firebug console commands)

Ottiene un elemento dal suo id.

+0

esattamente la documentazione che stavo cercando, grazie! –

+2

Non riceve più un elemento dall'ID. Ora implementa selettori più complessi. – Martin

5

https://developers.google.com/chrome-developer-tools/docs/console

E 'solo un rapido accesso alle document.getElementById.

+0

Sono d'accordo, ma noto anche che '$ == document.getElementById' restituisce' false' ... dispari! – aaaidan

+0

@aaaidan, è perché non ottiene l'elemento per id, supporta anche i selettori di stile sizzle! (non testare però con quelli complessi) –

+0

Ah vero. Forse fa riferimento a document.querySelector, quindi? – aaaidan

6

A giudicare dal numero link to the dev tools utilizza ora document.querySelector() anziché getElementById().

+0

bel aggiornamento, buono a sapersi - grazie! –

13

Le risposte attuali sono obsoleti, $ non è un alias per document.getElementById o document.querySelector, ma un wrapper per querySelector. Questo wrapper richiede in realtà un secondo argomento opzionale per l'elemento di interrogare il figlio di.

Questa famiglia di funzioni è documentata sotto il Console: Selecting Elements:

Selezione di elementi

Ci sono alcune scorciatoie per selezionare gli elementi. Questi ti fanno risparmiare tempo prezioso rispetto alla digitazione delle loro controparti standard.

$() Restituisce il primo elemento che corrisponde al selettore CSS specificato. È una scorciatoia per document.querySelector().

$$() Restituisce una matrice di tutti gli elementi che corrispondono al selettore CSS specificato. Questo è un alias per document.querySelectorAll()

$x() Restituisce una matrice di elementi che corrisponde allo XPath specificato.


Tuttavia, questi valori sono solo i valori di default nella console. Se la pagina sovrascrive il tag includendo qualcosa come jQuery, la console utilizzerà il valore dalla pagina stessa, e qualcosa come $('p') restituirà un oggetto jQuery piuttosto che il primo elemento p.

+1

Link non aggiornato, queste funzioni sono ora documentate [qui] (https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference). Si noti inoltre che '$$()' restituisce un 'Array', diversamente da 'document.querySelectorAll()' che restituisce un 'NodeList'. – nollidge

+0

E la [documentazione corrente] (https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference # queryselector) chiama '$' un" alias "per' document.querySelector' (anche se non sembra vero, almeno, '$ === document.querySelector' è 'false'). –

Problemi correlati