2011-05-27 58 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> "); 
});