usando $ .each para agregarClase a los elementos

Estoy tratando de estilizar un subconjunto de anclas usando una matriz

HTML y CSS:

 .hilight { background: #f00; } 

por ejemplo, ¿cómo agregaría la clase ‘hilight’ a los anclajes 2, 5 y 6 …

Habiendo probado esto:

 $("a[href='#5']").addClass('hilite'); 

Probé lo siguiente con $ .each (), que no funciona. Supongo que estoy iterando sobre cada anclaje 3 veces, ¡pero no esperaba NINGUNA salida!

 var arr = ["#2", "#5", "#6"]; $.each(arr, function(index, value) { $("a[href=value]").addClass('hilite');' }); 

¿Puede alguien apuntarme en la dirección correcta por favor 🙂

No necesita ninguno, solo puede usar todos los selectores separados por comas.

 $("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite'); 

Su código no funciona porque $("a[href=value]") no existe.

Debe usar $("a[href='"+value+"']") , donde el valor será “reemplazar” por el valor del valor de la variable.

Aquí una solución:

 var arr = ["#2", "#5", "#6"]; $.each(arr, function(index, value) { $("a[href='"+value+"']").addClass('hilite'); }); 

Si no tienes TONELADAS de ellas, podría ser más simple simplemente …

 $("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite'); 

Para hacer lo mismo, pero de forma más dinámica (para John) …

 var arr = ["#2", "#5", "#6"]; $("a[href='"+arr.join("'], a[href='")+"']").addClass('hilite'); 

Esto supone que arr siempre tiene al menos un elemento.

El método jQuery addClass () tiene la capacidad de crear una función para determinar qué clase agregar. Puede usar esto para determinar si el elemento es uno que necesita la clase agregada. Esto sería más eficiente que ejecutar el selector $("a[href='"+value+"']") para cada valor en la matriz, ya que solo atravesaría el DOM una vez en lugar de n (tamaño de la matriz) veces.

 var arr = ["#2", "#5", "#6"]; $("a").addClass(function () { if (arr.indexOf($(this).attr("href")) != -1) { return "hilight"; } }); 

Aquí hay una demostración http://jsfiddle.net/VqLnt/3/

También quiero señalar que su clase de CSS se llama hilight pero la clase que está intentando agregar en JavaScript es hilite . Este es probablemente un error tipográfico, pero solo quiero que estés al tanto.