javascript - 简化两个 jQuery 函数以更改两个单独下拉菜单的背景

标签 javascript jquery html css

我正在尝试更改两个下拉菜单的背景颜色。在这些下拉菜单中有一个 true 或 false 选项。如果选择“True”,下拉菜单的背景颜色应变为绿色。如果为 False,则背景为红色。

目前,我已经为两个下拉菜单创建了两个单独的函数,并且我正在努力寻找一种无需使用相同 ID 即可将它们组合起来的方法。

$('#dropdown-a').on('change', function(){
   if ($('#dropdown-a option:selected').text() == "True")
      $('#dropdown-a').css('background-color', '#28a745')
   else if ($('#dropdown-a option:selected').text() == "False")
      $('#dropdown-a').css('background-color', '#dc3545')
   else
      $('#dropdown-a').css('background-color', '#dc3545')
});

$('#dropdown-b').on('change', function(){
   if ($('#dropdown-b option:selected').text() == "True")
      $('#dropdown-b').css('background-color', '#28a745')
   else if ($('#dropdown-a option:selected').text() == "False")
      $('#dropdown-b').css('background-color', '#dc3545')
   else
      $('#dropdown-b').css('background-color', '#dc3545')
});
 select option[value="True"] {
   background-color: #28a745;
 }

 select option[value="False"] {
   background-color: #dc3545;
 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="form control form-control-sm" id="dropdown-a">
  <option selected disabled value="">True/False</option>
  <option value="True">True</option>
  <option value="False">False</option>
</select>

<select class="form control form-control-sm" id="dropdown-b">
  <option selected disabled value="">True/False</option>
  <option value="True">True</option>
  <option value="False">False</option>
</select>

最佳答案

试试这个:

const makeDropDown = function(ddSelector){
    $(ddSelector).on('change', function(){
       if ($(ddSelector +' option:selected').text() == "True")
          $(ddSelector).css('background-color', '#28a745')
       else if ($(ddSelector + ' option:selected').text() == "False")
          $(ddSelector).css('background-color', '#dc3545')
       else
          $(ddSelector).css('background-color', '#dc3545')
    });
};
makeDropDown('#dropdown-a');
makeDropDown('#dropdown-b');

关于javascript - 简化两个 jQuery 函数以更改两个单独下拉菜单的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961609/

相关文章:

jquery - 如何禁用 jqGrid 中选定列的搜索选项?

javascript - 将网站分为 3 个部分 -> 1 个水平部分和 2 个垂直部分

javascript - 如何在网站上节省值(value)?

javascript - 如何使用 jQuery 删除动态添加的行

php - 有没有办法从单个页面导出 CSS 和 HTML 代码?

javascript - Three.js 使用2D texture\sprite做动画(planeGeometry)

javascript - 无法规范化查询 : IndexNotFound: text index required for $text query', 代码:17287

javascript - 我的主干 js 路由器无法工作

javascript - 巨型屏幕抓取/缩放

javascript - 在简单的 HTML/JavaScript 元素中抽动 TABLE