2010-08-14 17 views
25

Tengo que establecer un nombre de clase en un elemento (li). Este script encuentra todos los elementos (a) en la lista y crea un evento de clic.JQuery agregar clase al elemento principal

jQuery("#" + ElementID).find(TagName).click(function() { 

    GetPageByUrl(jQuery(this).attr("href")); 
    jQuery(this).parent().addClass('yourClass'); 
    //ChangeSelectedMenuItem(this); 
    return false; 
}); 

El padre de todos los (a) el elemento es un elemento (li)

pero no pasa nada, cuando esta línea se está ejecutando jQuery (este) .parent() addClass ('yourClass.');

Todo lo demás está funcionando bien.

¿Qué estoy haciendo mal aquí?


Bien, pero todavía no funcionará. No agregará ninguna clase jQuery (this) .addClass ('yourClass'); ¿Debería agregar una clase al elemento (a), pero no es así?

+0

Las respuestas publicadas * debería * trabajo. Para ver por qué no están funcionando, necesitamos ver el html que estás usando. Y el resto del jQuery/JavaScript relevante. ¿Podría publicar un [JS Fiddle demo] (http://jsfiddle.net/) para reproducir su problema? –

Respuesta

38

Especificar el selector opcional para apuntar lo que quiere:

jQuery(this).parent('li').addClass('yourClass'); 

O:

jQuery(this).parents('li').addClass('yourClass'); 
10
$(this.parentNode).addClass('newClass');
+5

El enlace está roto. – WEFX

+1

En cierto modo, este comentario es correcto e incorrecto. Depende de tu sistema. Si necesita agregar dinámicamente una clase, el uso de jQuery está bien. Si está utilizando este método para agregar la clase en lugar de modificar el html base, entonces no es el camino correcto. – jezzipin

Cuestiones relacionadas