我有一组按钮的以下标记:
<div class="btn-group pull-right">
<button type="button" class="btn btn-default" id="today">Today</button>
<button type="button" class="btn btn-default" id="this_week">This Week</button>
<button type="button" class="btn btn-default" id="this_month">This Month</button>
<button type="button" class="btn btn-default" id="custom">Custom</button>
</div>
我尝试使用jQuery在按钮上用类btn-default
替换类btn-primary
,以便在单击时,单击的按钮将具有以下class="btn btn-primary"
,以及任何其他类btn-primary
组中的按钮将切换回btn-default
。
对于我在下面提供的内容,是否有更优雅的解决方案?我是否必须为每个按钮编写一个功能?另外,我冒险将btn btn-default
添加到已经拥有该类的按钮。非常感谢任何帮助。
$("#today").click(function () {
$(this).parent().find("btn btn-primary").removeClass("btn btn-primary");
$(this).parent().addClass("btn btn-default");
$(this).addClass("btn btn-primary");
});
答案 0 :(得分:7)
$('.btn-group').on('click', '.btn', function() {
$(this).addClass('btn-primary').siblings().removeClass('btn-primary').addClass('btn-default');
});
.btn-default {
color: red;
}
.btn-primary {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default" id="today">Today</button>
<button type="button" class="btn btn-default" id="this_week">This Week</button>
<button type="button" class="btn btn-default" id="this_month">This Month</button>
<button type="button" class="btn btn-default" id="custom">Custom</button>
</div>
$(this)
:是点击的按钮addClass('btn-primary')
:将指定的类添加到单击的按钮.siblings('.btn')
:将获得btn
类this
元素的兄弟姐妹(同一级别的节点).removeClass('btn-primary').addClass('btn-default')
:相应地更新siblings
答案 1 :(得分:0)
尝试使用.toggleClass()
var buttons = $("button");
buttons.on("click", function() {
buttons.toggleClass("btn-default", true).removeClass("btn-primary")
.filter(this).toggleClass("btn-primary btn-default");
})
.btn-primary {
background:yellow;
}
.btn-default {
background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default" id="today">Today</button>
<button type="button" class="btn btn-default" id="this_week">This Week</button>
<button type="button" class="btn btn-default" id="this_month">This Month</button>
<button type="button" class="btn btn-default" id="custom">Custom</button>
</div>