具有相同Javascript样式的多个select表单

具有相同Javascript样式的多个select表单,javascript,Javascript,我尝试使用两个使用相同JS的select表单。我希望它们中的每一个都包含以这些颜色出现的颜色列表。但现在,当我点击顶部的蓝色按钮时,底部的也会变成蓝色,即使上面写着红色。我怎样才能得到我想要的行为?我认为我需要将JS应用到整个类中,但我不知道如何做到这一点,但仍然保持它们单独工作,并且不干扰另一个类的着色。另外,我想保持我的悬停行为,文本颜色保持不变,即使鼠标悬停在上面,背景也会稍微变灰。这可以在下面的JSFiddle中看到 作为一个 HTML 首先-两个选择器的id相同。应该有所不同。第二,在

我尝试使用两个使用相同JS的select表单。我希望它们中的每一个都包含以这些颜色出现的颜色列表。但现在,当我点击顶部的蓝色按钮时,底部的也会变成蓝色,即使上面写着红色。我怎样才能得到我想要的行为?我认为我需要将JS应用到整个类中,但我不知道如何做到这一点,但仍然保持它们单独工作,并且不干扰另一个类的着色。另外,我想保持我的悬停行为,文本颜色保持不变,即使鼠标悬停在上面,背景也会稍微变灰。这可以在下面的JSFiddle中看到

作为一个

HTML


首先-两个选择器的id相同。应该有所不同。第二,在on'change'函数中使用$this只处理选中的select

  $('.pickerSelectClass').change(function(){
   $(this).css('color', $(this).val());
  });
以上解决了实际更改选择时的颜色切换问题。 为了确保从一开始就显示相应的颜色,请在此行中添加:

$('.pickerSelectClass').each(function(){
    $(this).css('color', $(this).val());
});
要使这一切看起来更漂亮:

$('.pickerSelectClass').each(function(){
   $(this).css('color', $(this).val());
}).change(function(){
   $(this).css('color', $(this).val());
});

首先-两个选择器的id相同。应该有所不同。第二,在on'change'函数中使用$this只处理选中的select

  $('.pickerSelectClass').change(function(){
   $(this).css('color', $(this).val());
  });
以上解决了实际更改选择时的颜色切换问题。 为了确保从一开始就显示相应的颜色,请在此行中添加:

$('.pickerSelectClass').each(function(){
    $(this).css('color', $(this).val());
});
要使这一切看起来更漂亮:

$('.pickerSelectClass').each(function(){
   $(this).css('color', $(this).val());
}).change(function(){
   $(this).css('color', $(this).val());
});
试试这个js

 $(document).ready(function() { 
      $(".pickerSelectClass").selectpicker();   

    var pickers = $(".pickerSelectClass");
  for(var i = 0; i<pickers.length; i++){
    var id = pickers[i].id;
    $("#select-"+id).selectpicker("refresh");
    $('.filter-option').css("color",$('#select').val());
     $('#select-'+id).on('change', function(){
      $('.filter-option').css('color', $(this).val());
    }); 
  }

});
这个html

<div class="selectContainer">
  <select class="form-control pickerSelectClass" id="select-2">
    <option value="red" style="color:red">Red</option>
    <option value="blue" style="color:blue">Blue</option>
  </select>
</div>

<div class="selectContainer">
  <select class="form-control pickerSelectClass" id="select-1">
    <option value="red" style="color:red">Red</option>
    <option value="blue" style="color:blue">Blue</option>
  </select>
</div>
只需为每个选择器添加一个唯一的id,并应用相同的逻辑,但在单独的线程中进行

 $(document).ready(function() { 
      $(".pickerSelectClass").selectpicker();   

    var pickers = $(".pickerSelectClass");
  for(var i = 0; i<pickers.length; i++){
    var id = pickers[i].id;
    $("#select-"+id).selectpicker("refresh");
    $('.filter-option').css("color",$('#select').val());
     $('#select-'+id).on('change', function(){
      $('.filter-option').css('color', $(this).val());
    }); 
  }

});
这个html

<div class="selectContainer">
  <select class="form-control pickerSelectClass" id="select-2">
    <option value="red" style="color:red">Red</option>
    <option value="blue" style="color:blue">Blue</option>
  </select>
</div>

<div class="selectContainer">
  <select class="form-control pickerSelectClass" id="select-1">
    <option value="red" style="color:red">Red</option>
    <option value="blue" style="color:blue">Blue</option>
  </select>
</div>


只需为每个选择器添加一个唯一的id,并应用相同的逻辑,但在单独的线程中,id需要唯一,您有两个选择,使用类instead以它们为目标。我尝试了这一点,但仍然无法使其工作。你能做一个JSFIDLE fork来告诉我你的意思吗?这对我来说很有用,我在选择时看不到任何颜色检查我更新的应答ID需要是唯一的,你有2个选择,通过使用类INSTEAD来定位它们。我试过了,但我仍然无法让它工作。你能做一个JSFiddle叉子来告诉我你的意思吗?这对我来说很有用,因为我在选择时看不到任何颜色检查我的更新答案你能做一个JSFiddle叉子来告诉我你的意思吗?当然,给我一个扇形。太棒了,非常感谢!我还意识到我可以在一个容器中同时拥有这两个;是的,这段代码不会限制你在选择中的选项数量和同一类的选择数量时的操作-代码将涵盖所有内容。我意识到你的示例打破了我想要的悬停行为。在我给出的示例中,当您将鼠标悬停在某个选项上时,文本颜色不会改变,背景会稍微变灰。在您的示例中,它恢复为背景变蓝和文本变白的标准行为,这是我不想要的。您是否能够使用JSFIDLE fork向我展示您的意思?当然,给我一个扇区。这太棒了,非常感谢!我还意识到我可以在一个容器中同时拥有这两个;是的,这段代码不会限制你在选择中的选项数量和同一类的选择数量时的操作-代码将涵盖所有内容。我意识到你的示例打破了我想要的悬停行为。在我给出的示例中,当您将鼠标悬停在某个选项上时,文本颜色不会改变,背景会稍微变灰。在您的示例中,它恢复为背景变为蓝色和文本变为白色的标准行为,这是我不想要的。$'select'。在上没有选择了为什么不?是的,有。。。我保留了它,现在它是select-[id]是的,您将它更改为select-[id],因此select在$'select'中的位置。在'change'上,函数{这是您的解决方案代码的一部分您是对的,我的错。谢谢!我编辑了解决方案,尽管另一个答案甚至比mineHi Uriel更好,但我用select-[id]尝试了您的解决方案但它仍然不起作用。你能用它做一个JSFIDLE吗?$'select'。在没有选择的情况下为什么不呢?是的,有…我保留了它,现在它是select-[id]是的,你把它改成了select-[id],所以select在$'select'中的位置。在'change'上,函数{这是你的解决方案代码的一部分你说得对,我的错。谢谢!我编辑了解决方案,尽管另一个答案甚至比mineHi Uriel更好,但我用select-[id]尝试了你的解决方案,但仍然不起作用。你能用它做一个JSFIDLE吗?