我有这个HTML代码:
<a class="btn pull-left" id="btnSelectAll"><i class="icon-plus"></i>
Select All
</a>
当我点击按钮时,我需要将文本切换为“取消全选”,并将<i>
的类更改为“icon-minus”,因为每次点击都应该在一个或另一个之间切换。我试着在锚上切换但是没有用。我不想对文本进行硬编码,因为它可以使用不同的语言。
以下是我的尝试:
$("#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();
希望得到这个帮助。
答案 1 :(得分: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;
});
答案 2 :(得分: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");
});