2011-05-27 8 views
5

Tengo una función de resaltado usando JQuery, que cambia el CSS para el elemento <li> cliqueado en un menú. La función también incluye un par de corchetes izquierdos < < para servir como pseudo flechas.Eliminar texto que se agregó anteriormente

¿Pero cómo elimino eso < < cuando paso al siguiente <li>?

$(".sdv-nrml").click(function(){ 

//remove old highlighted li 
$(".sdv-nrml").css({'background' : '#ffcc66' , 'color' : '#000000' , 'text-align' : 'right'}); 

//assign new css and prepend arrow 
$(this).css({'background' : '#996600' , 'color' : '#ffff66' , 'text-align' : 'left'}); 
$(this).prepend("<< "); 
}); 

Gracias

Respuesta

10

me gustaría incluir el << en un <span>:

$(this).prepend('<span class="prepended">&laquo; </span'); 

a continuación para eliminar:

$(".prepended").remove(); 

Nota: He utilizado « en lugar de < <. Me parece un poco más atractivo.

+0

Gracias amablemente. – Tom

+0

nota: error menor la clase se denominó "prependED" a la que se hace referencia como .prepender gran solución, sin embargo, exactamente lo que estaba buscando – user

7

envolverlo en un span con un class y quitar eso.

$(this).prepend('<span class="pseudo-arrow">&lt;&lt;</span>'); 
+0

Gracias! Caramba, tan simple ... se nota que se está haciendo tarde aquí, es hora de tomarse un descanso y disfrutar de una cerveza. – Tom

0

¿por qué no se usa una clase para el estado seleccionado? .selected-item { background: # ffcc66; color: # 000; text-align: right; }

Así que la secuencia de comandos se puede utilizar como esa:

$(".sdv-nrml").click(function(){ 

    //remove old highlighted li 
    $(".sdv-nrml").each(function(){ 
     $(this).removeClass("selected arrow"); 
    }); 

    //assign new css and prepend arrow 
    $(this).addClass("selected"); 
    $(this).prepend("<span class='arrow'>&lt;&lt;</span> "); 
}); 
Cuestiones relacionadas