2010-04-05 5 views
17

Dato questo HTML:

<div class="OpenIDSelector">some text</div> 

Perché questo selettore JQuery abbinarlo su alcuni browser e alcune pagine, ma non su altri?

$('.OpenIdSelector') 

NOTA: mi sono imbattuto in questo problema e risolto da solo, ma era fastidioso e non ho trovato su StackOverflow già, quindi sto distacco come un Q & Un paio modo che qualcun altro non sprecherò un'ora come ho fatto io.

+0

sì, sono case sensitive, ma a volte il browser non / – spielersun

risposta

29

Risulta che JQuery's class selector utilizza il nuovo metodo javascript getElementsByClassName se il browser lo supporta. Questo metodo non fa distinzione tra maiuscole e minuscole nelle pagine in modalità quirk e fa distinzione tra maiuscole e minuscole su pagine non-quirksmode (ovvero conformi agli standard). Certo, di solito è ovvio che i casi sono diversi, ma quando il testo è bloccato nel mezzo di un selettore lungo e complesso era difficile da vedere. Apparentemente ci sono molte differenze tra maiuscole e minuscole tra standard e stranezze a cui prestare attenzione.

Morale della favola: caso partita tutto nel codice HTML (nomi di elementi, classi CSS, ecc) perché non si sa mai quando una modifica a un browser o libreria standard o potrebbe invalidare la tua ipotesi sul caso-insensibilità .

Problemi correlati