Javascript 按钮不会改变颜色(HTML5)

Javascript 按钮不会改变颜色(HTML5),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有三个类似单选按钮的按钮,一次只能选择一个: <button id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button> <button id="btn-silver" name="btn-silver" type="button">Silver</button> <button id="btn-gold" name="btn-g

我有三个类似单选按钮的按钮,一次只能选择一个:

<button id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button id="btn-silver" name="btn-silver" type="button">Silver</button>
<button id="btn-gold" name="btn-gold" type="button">Gold</button>
选择后,所选按钮应添加此类以修改背景色:

.blue-selected
{
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0.0, #FFFFFF), color-stop(1.0, #6699CC));;
}
这是使用
jQuery
在主体加载时调用的方法完成的:

$("#btn-bronze").click(function() 
{

    console.log("bronze");
    $(this).addClass('blue-selected');
    $("#btn-silver").removeClass('blue-selected');
    $("#btn-gold").removeClass('blue-selected');
});

$("#btn-silver").click(function() 
{
    console.log("silver");
    $("#btn-broze").removeClass('blue-selected');
    $(this).addClass('blue-selected');
    $("#btn-gold").removeClass('blue-selected');
});

$("#btn-gold").click(function() 
{
    console.log("gold");
    $("#btn-broze").removeClass('blue-selected');
    $("#btn-silver").removeClass('blue-selected');
    $(this).addClass('blue-selected');
});
单击其中一个按钮时,将显示console日志消息,但背景颜色保持不变。我做错了什么

#btn BRONZER
具有更高的特异性。选择蓝色
,因此其背景优先

您可以通过使用
绕过此问题!重要信息
,但这可能不是最好的解决方案

最可靠的方法是,如果父元素也有一个ID,那么您可以选择
#parent element>.blue selected
并获得更高的特异性。

#btn brown
具有更高的特异性。blue selected
,因此其背景优先

您可以通过使用
绕过此问题!重要信息
,但这可能不是最好的解决方案


最可靠的方法是,如果父元素也有一个ID,那么您可以选择
#parent element>。蓝色选择
,并获得更高的特异性。

ID选择器的优先级高于类选择器。您可以在css代码中使用
important

ID选择器的优先级高于类选择器。您可以在css代码中使用
important

我会解决一些问题

使用类而不是ID目标。我把身份证留在里面了,但你现在真的不需要了:

<button class="btn" id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button class="btn" id="btn-silver" name="btn-silver" type="button">Silver</button>
<button class="btn" id="btn-gold" name="btn-gold" type="button">Gold</button>
最后,我将简化javascript的所有功能:

$(".btn").click(function () {
    $(".btn").removeClass("blue-selected");
    $(this).addClass('blue-selected');
});

我会解决一些问题

使用类而不是ID目标。我把身份证留在里面了,但你现在真的不需要了:

<button class="btn" id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button class="btn" id="btn-silver" name="btn-silver" type="button">Silver</button>
<button class="btn" id="btn-gold" name="btn-gold" type="button">Gold</button>
最后,我将简化javascript的所有功能:

$(".btn").click(function () {
    $(".btn").removeClass("blue-selected");
    $(this).addClass('blue-selected');
});

我制作了一个简化版的JSFIDLE来解决您的问题:我制作了一个简化版的JSFIDLE来解决您的问题:哇,谢谢您的修复/简化!哇,谢谢你的修复/简化!