当selecet为红色时,Jquery下拉列表都会变为绿色

时间:2016-06-07 11:10:58

标签: javascript jquery

您好,当我在下拉列表中选择红色时,如果我点击backgroundcolor green有人可以提供帮助,我仍会获得td吗?

$('document').ready(function (){
    if ($('#rood').val() == 'Rood'){
        $('td').click(function (){
            $(this).css('background-color', 'red');
        });
    }

    if ($('#groen').val() == 'Groen'){
        $('td').click(function (){
            $(this).css('background-color', 'green');
        })
    }
});
<h2>Color</h2>
<select>
    <option value="Rood" id="rood">Rood</option>
    <option value="Groen" id="groen">Groen</option>
    <option value="Blauw">Blauw</option>
    <option value="Geel">Geel</option>
</select>

2 个答案:

答案 0 :(得分:3)

您应该在点击处理程序中验证条件。

$(document).ready(function() {
    //Bind the click hanlder
    $('td').click(function() {
        //Fetch the value for select
        var value = $('select').val();

        //Fetch the value and compare          
        if (value == 'Rood') {
            $(this).css('background-color', 'red');
        } else if (value == 'Groen') {
            $(this).css('background-color', 'green');
        }
    })
});

答案 1 :(得分:1)

@Satpal的回答是正确的,我只是想补充说明为什么你的代码不起作用。

  1. 您尚未对select实现任何类型的侦听器。选择不会对任何点击做出反应,除非您告诉它对点击做出反应。
  2. 您的代码只会在文档就绪时执行一次。在这里,您的代码将如下所示:
  3. 如果红色==红色将背景颜色设置为红色(将背景颜色始终设置为红色)

    如果绿色==绿色将背景颜色设置为绿色(将背景颜色始终设置为绿色)

    由于未添加选择中的点击功能,因此之后的背景颜色将永远不会设置为绿色以外的任何其他颜色。