2011-05-05 21 views
12

Tutto ad un tratto alcuni functionlities dell'interfaccia utente del nostro sito non stanno lavorando e sto ottenendo il messaggio di errore:jQuery eccezione non rilevata: errore di sintassi, l'espressione non riconosciuta [tabindex = "qualcosa"]

jQuery eccezione non rilevata: errore di sintassi, l'espressione non riconosciuta [tabindex = "qualcosa"]

QUESTO è il mio codice:

var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').attr('src'); 
jQuery('a[ tabindex=' + thumb_src + ']').prevAll().removeClass('selectedThumb'); 
jQuery('a[ tabindex=' + thumb_src + ']').addClass('selectedThumb'); 
jQuery('a[ tabindex=' + thumb_src + ']').nextAll().removeClass('selectedThumb'); 

Si stava lavorando bene fino a jQuery è stato aggiornato alla più recente e credo che sia la causa. Sto facendo qualcosa di illegale nelle dichiarazioni di cui sopra? Grazie per qualsiasi input o aiuto su questo!

+0

penso che devi usare 'a [tabindex =' piuttosto che 'a [tabindex =' – drudge

+0

Quali versioni hai aggiornato da/a? Sto indovinando che stai usando qualcosa che è deprecato nella nuova versione. – WEFX

+0

perché dovresti impostare il tuo tabindex su qualcosa che non sia un numero? anche tu hai provato a rimuovere lo spazio bianco qui "a [t". – jacobangel

risposta

12

Molto probabilmente qualsiasi . o / caratteri nel thumb_src stanno rompendo i selettori di attributo nel tuo ultimo tre linee in quanto sono caratteri speciali CSS.

provare le virgolette dentro quei selettori in modo che siano prese alla lettera (anche se in realtà non dovrebbe usare nulla, ma i valori numerici per tabindex):

jQuery('a[tabindex="' + thumb_src + '"]') 

Il API docs dicono che queste citazioni sono obbligatori comunque in selettori di attributo jQuery.

+0

Questo è esattamente quello che era: 5 anni + programmazione e programmazione e mancano ancora cose ovvie come questa! Comunque questo mi ha anche spinto ad aggiornare anche il .attr() con .prop()! Grazie mille! – IntricatePixels

+0

Nessun problema - ero piuttosto perplesso di fronte a tutti su '.attr () 'e' .prop() 'anche se questo è ancora un cambiamento necessario quando si aggiorna a 1.6. Non pensavo che fosse collegato al tuo errore. – BoltClock

+0

geniale!Il mio problema è stato che stavo cercando di sottrarre 1 da "thumb_scr" e si stava scaricando, quindi quello che ho fatto è stato '' '$ ('[tabindex ="' + (thumb_src - 1) + '] ")' ' 'nota che le parentesi separano la matematica dal resto della stringa –

2

La funzione attr() è stata modificata a partire dal jQuery 1.6, utilizzare prop() invece:

var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').prop('src'); 

Vedi this question

+0

Modificato in jQuery 1.6, leggere le note di rilascio qui: http://blog.jquery.com/2011/05/03/jquery-16-released/ – CamelCamelCamel

+0

Modificato su .prop() ma ancora lo stesso messaggio di errore. Mi sembra che non piaccia la parte [tabindex = "ma non ho idea del perché. La versione corrente di jQuery è 1.6 – IntricatePixels

+0

hmmm non sono sicuro. Puoi postare parte del tuo codice (o tutto se possibile) a jsfiddle? – Neal

Problemi correlati