2011-05-05 15 views
12

De repente algunos functionlities de interfaz de usuario en nuestro sitio no están funcionando y que estoy recibiendo el mensaje de error:jQuery excepción no detectada: error de sintaxis, expresión no reconocida [tabindex = "algo"]

jQuery excepción no detectada: error de sintaxis, expresión no reconocida [tabindex = "algo"]

ESTA eS MI CÓDIGO:

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'); 

se estaba trabajando bien hasta que jQuery se ha actualizado a la última y creo que esa es la causa. ¿Estoy haciendo algo ilegal en las declaraciones anteriores? ¡Gracias por cualquier aporte o ayuda en esto!

+0

Creo que tiene que usar 'a [tabindex =' en lugar de 'a [tabindex =' – drudge

+0

¿De qué versiones actualizó de/a? Supongo que estás usando algo que está en desuso en la nueva versión. – WEFX

+0

¿por qué estarías configurando tu tabindex a algo que no es un número? también ha intentado eliminar los espacios en blanco aquí "a [t". – jacobangel

Respuesta

12

más probable es que cualquier . o / caracteres en su thumb_src están rompiendo los selectores de atributos en su última tres líneas, ya que son caracteres CSS especiales.

Pruebe las comillas dobles dentro de los selectores de modo que están tomados literalmente (a pesar de que en realidad no debería estar usando nada más que los valores numéricos de tabindex):

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

El API docs decir que estas citas son obligatorios en los selectores de atributos jQuery de todos modos.

+0

¡Eso es exactamente lo que era! ¡5 años + codificación y programación y todavía me faltaban cosas obvias como esta! ¡Sin embargo, esto también me impulsó a actualizar .attr() a .prop() también! ¡Muchas gracias! – IntricatePixels

+0

No hay problema - Yo estaba bastante desconcertado con todo el mundo sobre '.attr () 'y' .prop() 'aunque eso sigue siendo un cambio necesario al actualizar a 1.6. Simplemente no pensé que estaba relacionado con tu error. – BoltClock

+0

¡genial!Mi problema fue que estaba tratando de restar 1 de "thumb_scr" y se estaba liberando, así que lo que hice fue '' '$ ('[tabindex ="' + (thumb_src - 1) + '] ")' ' 'tenga en cuenta que los corchetes separan las matemáticas del resto de la cadena –

2

La función attr() fue cambiado a partir del jQuery 1.6, utilice prop() lugar:

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

Ver this question

+0

Esto cambió en jQuery 1.6, lea las notas de la versión aquí: http://blog.jquery.com/2011/05/03/jquery-16-released/ – CamelCamelCamel

+0

Cambió a .prop() pero aún el mismo mensaje de error. Siento que no me gusta la a [tabindex = "parte pero no tengo idea de por qué. La versión actual de jQuery es 1.6 – IntricatePixels

+0

hmmm no estoy seguro. ¿Puedes publicar parte de tu código (o todo eso si es posible) en jsfiddle? – Neal

Cuestiones relacionadas