Javascript 更改jQuery UI下拉列表';s背景色取决于复选框状态

Javascript 更改jQuery UI下拉列表';s背景色取决于复选框状态,javascript,jquery,jquery-ui,jquery-selectors,selector,Javascript,Jquery,Jquery Ui,Jquery Selectors,Selector,我正在使用和在页面上设置表单的样式。在设置表单时,我将下拉列表定义为: $('select#em_basic_life_plans').selectmenu({ style:'dropdown', width: 378, maxHeight: 238 }); 并在页面中创建下拉列表,如下所示: <fieldset> <select name="em_basic_life_plans" id="em_basic_life_plans" tabin

我正在使用和在页面上设置表单的样式。在设置表单时,我将下拉列表定义为:

$('select#em_basic_life_plans').selectmenu({
    style:'dropdown',
    width: 378,
    maxHeight: 238
});
并在页面中创建下拉列表,如下所示:

<fieldset>
    <select name="em_basic_life_plans" id="em_basic_life_plans" tabindex="10" />
    <option value="" selected="" class="selectmenu-req-format">Plan: select</option>
    <option value="5K">Plan: 5K Flat Benefit</option>
    <option value="10K">Plan: 10K Flat Benefit</option>
    <option value="100K Maximum">Plan: 100K Maximum</option>
    </select>
</fieldset>
并且,写入期权本身(如上所示):

希望这能让事情有所进展。现在回答我的问题:

如何将上述下拉列表的背景色从浅黄色改回浅灰色,具体取决于页面上的某个复选框何时被取消选中?

我认为这会奏效:

$('#basic_cov_life').click(function() {
    if ($('#basic_cov_life').is(':checked')) {
        alert("Debugging: this is now checked.");
    }
    else {
        $('#em_basic_life_plans-button').css('background-color:#B3B3B3;');
    }
});
用于确定复选框(#basic_cov_life)是否已选中的代码正在运行。。。只是将颜色改回灰色的代码不起作用:

$('#em_basic_life_plans-button').css('background-color:#B3B3B3;');
有没有办法把背景颜色改回浅灰色?而且,尽管我还没有使用上面的代码,但我也需要将文本改回灰色

提前非常感谢您提供的任何见解


Berklie

点击
处理程序
中,此
将指向您点击的复选框,这样您就不必使用
$('basic#cov_life')
。要设置任何css样式
css
方法,需要两个参数(属性/值)或一个映射。试试这个

$('#basic_cov_life').click(function() {
    if ($(this).is(':checked')) {
        $('#em_basic_life_plans-button').css('backgroundColor', '#fff4bf');//Set the appropriate color here
    }
    else {
        $('#em_basic_life_plans-button').css('backgroundColor', '#B3B3B3');
    }
});


感谢您指出此
的用法。。。但是,我的
$('em#u basic_life_plan-button').css('background-color:'b3b3;')
也不是你建议的
$('em#u basic_life_plan-button').css('backgroundColor','b3')正在更改背景色。还有什么你能想到的吗?再次感谢。
$('em#u basic_life_plan-button').css('backgroundColor','b3b3')绝对有效。你能检查一下
$('em#u basic_life_plan-button')长度吗?你确定你有正确的选择器id吗?你好。是的,删除
警报($('em#u basic_life_plans-button').length)都会给我一个值“1”。。。因此,我知道我已经获得了正确的选择器ID。我认为这变得复杂了,因为在SelectMenu CSS中,我将其声明为浅灰色,然后在页面加载时使用
\em\u basic\u life\u plan-button{background color:#fff4bf!important;}
。因此,我无法像
$('em#u basic_life_plan-button').css('backgroundColor','b3')那样清晰地使用它应允许。我可能需要重写
!重要信息
以某种方式?您可以从css中删除重要信息吗。将其更改为“#em#u basic_life_plan-button{背景色:#fff4bf;}”。如果不起作用,则尝试通过
!重要信息
在css方法中与颜色一起使用,如“$”(“#em#u basic_life_plans-button”).css('backgroundColor',“#b3!important');你知道,我们有
!重要信息
声明,以便IE6正常工作。然而,现在我们不再支持IE6,我实际上可以删除
!重要信息
。正在删除
!重要信息
(通过IE8、Firefox、Safari和Chrome中的快速测试)实现了我们想要的“必需”颜色更改为浅黄色(并证明我们不再需要它)。所以,没有
!重要信息
在顶部声明中。。。您的代码现在可以正常工作了。显然,
!重要信息
实际上意味着没有覆盖。多谢各位!我还可以使用哪些代码将文本颜色从黄色更改为灰色(
class=“selectmenu req format”
)?我很欣赏这些代码,但需要帮助的是背景颜色更改位。我已经检查/取消检查了复选框。
$('#em_basic_life_plans-button').css('background-color:#B3B3B3;');
$('#basic_cov_life').click(function() {
    if ($(this).is(':checked')) {
        $('#em_basic_life_plans-button').css('backgroundColor', '#fff4bf');//Set the appropriate color here
    }
    else {
        $('#em_basic_life_plans-button').css('backgroundColor', '#B3B3B3');
    }
});
document.getElementById("basic_cov_life").checked // returning boolean
$("#basic_cov_life").attr("checked") // returning attribute value
$("#basic_cov_life").prop("checked") // returning attribute value