2016-06-07 100 views
0

嗨,当我在下拉列表中选择红色我仍然得到backgroundcolor green当我点击td可以有人帮助吗?jquery下拉列表都获得颜色绿色时selecet红色

$('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> 
+0

如果downvoting,请留下评论为什么。虽然这个问题可能不是很先进,但是非常清楚,合理并且可以回答,并且在我看来不应该被低估。 – KjetilNordin

回答

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'); 
     } 
    }) 
}); 
+3

是的。您正在检查红色选项的值为红色,选项绿色的值为绿色。您不检查选择哪个选项,因此红色将始终为红色,绿色将始终为绿色,并且最新的语句将是决定背景颜色的语句 – KjetilNordin

1

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

  1. 您还没有实现任何类型的侦听器到选择。除非您告诉它对点击作出反应,否则选择不会对任何点击产生反应。
  2. 您的代码只会在文档准备就绪时执行一次。在这里,你的代码将这样写的:

如果红色==红组的背景色为红色(设置背景色为红色总是)

如果绿色==绿盘背景颜色为绿色(背景设置颜色为绿色)

由于没有添加选择点击功能,所以背景颜色将永远不会设置为除绿色之外的任何其他颜色。

相关问题