2013-10-24 60 views
0

我有這樣的HTML代碼:改變錨文本和圖標使用jquery引導

<a class="btn pull-left" id="btnSelectAll"><i class="icon-plus"></i> 
    Select All 
</a> 

當我按一下按鈕我需要切換到「全部取消」,改變它的類<i>到「文本圖標 - 減號「,每次點擊應該在一個或另一個之間改變。我試着用錨點切換,但沒有工作。我不想對文本進行硬編碼,因爲它可以使用不同的語言。

這裏是我的嘗試:

$("#btnSelectAll").click(function() { 
    var $this = $(this); 
    $this.toggleClass('show'); 

    if ($this.hasClass('show')) { 
     $this.text('@L.GetLanguageText("DeselectAll")'); 
     $($this +'> i').addClass('icon-minus'); 
    } else { 
     $this.text('@L.GetLanguageText("SelectAll")'); 
     $($this + '> i').addClass('icon-plus'); 
    } 
}); 

,但它不會改變的圖標。

+0

向我們展示你嘗試過什麼。 –

回答

1

只是缺少一些CSS調整,jsfiddle

JS:

var alterIcon = function() 
{ 
    $("#btnSelectAll").click(function() { 
     var icon = $(this).children("i"), 
      text = $(this).text(); 

     $(this).text(text == "Deselect All" ? "Select All" : "Deselect All"); 
     $(this).prepend(icon.toggleClass('glyphicon-thumbs-up glyphicon-thumbs-down')); 
    }); 
} 
alterIcon(); 

希望這有助於。

+0

非常感謝大家! – rgx71

0

看看這個小提琴:http://jsfiddle.net/YDqZW/

HTML:

<a class="btn pull-left" id="btnSelectAll"><i class="icon-plus"></i> 
    Select All 
</a> 

JS:

$('#btnSelectAll').on('click', function() { 
    var notice = 'Select All'; 

    if ($('#btnSelectAll').text().trim() == notice) { 
      notice = 'Deselect All'; 
    } 

    $('#btnSelectAll').find('i').toggleClass('icon-plus icon-minus').parent().contents().last()[0].textContent = notice; 
}); 
+0

我不想對文本進行硬編碼,因爲它可以使用不同的語言 – rgx71

+0

您打算從哪裏閱讀語言文本? –

+0

文字來自數據庫翻譯 – rgx71

0

試試這個尺寸爲:

$("#btnSelectAll").on("click", function() { 
    x = $(this).children()[0]; 
    $(this).text().trim() == "Select All" ? $(this).text("Deselect All").prepend(x) : $(this).text("Select All").prepend(x); 
    $($(this).children()[0]).toggleClass("icon-plus icon-minus"); 
});