2011-05-27 65 views
5

我有一个使用JQuery的高亮功能,它改变菜单中单击的<li>元素的CSS。该函数还预先将一对左括号< <作为伪箭头。删除先前追加的文本

但是,如何在切换到下一个<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("<< "); 
}); 

感谢

回答

10

我将包括<<<span>

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

然后删除:

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

注:我用«代替< <。我觉得它更有吸引力。

+0

谢谢。 – Tom 2011-05-27 00:43:32

+0

注意:小错误。类被称为“prependED”,简称为.prepare很好的解决方案,但我正在寻找 – user 2013-01-25 13:46:29

7

class把它包在一个span和删除。

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

谢谢!天哪,这么简单......你可以告诉它在这里迟到,休息一下并享用啤酒。 – Tom 2011-05-27 00:43:16

0

为什么你不选择用户选择状态的类? 。所选项目背景:#ffcc66; 颜色:#000; text-align:right; }

所以你的脚本可以使用这样的:

$(".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> "); 
});