jquery - MaterializeCSS 更改某些选项的选项颜色

标签 jquery css materialize

我正在使用来自 MaterializeCSS 的选择下拉菜单.我想创建一个类来更改某些选项的文本颜色。有办法吗?

我看到我通常可以通过以下方式改变颜色:

.dropdown-content li>a, .dropdown-content li>span {
    color: red;
}

但这会影响所有下拉颜色为红色。有没有一种方法可以指定一个类,该类只能更改某些选项的文本颜色。

我一直在寻找类似以下的内容:

<option value='A'>A</option>
<option value='B' class='red'>B</option>
<option value='C'>C</option>

最佳答案

您不能从 html 更改 materializecss 的 javascript 组件的行为,因为它们被重写了(您看到的 select 不是您在 html 中提供的原始组件,因为那个是 隐藏)

为了实现您的要求,我在初始化之后对新的“option”元素使用了一个简单的循环。当它找到您想要的那个时,它会将元素的类设置为 materializecss 的辅助类 materialize-red-text

document.addEventListener('DOMContentLoaded', function() {
    var elems = document.querySelectorAll('select');
    var instances = M.FormSelect.init(elems, {});
    changeColor();
});

function changeColor(){
  var options_elem = document.querySelectorAll(".dropdown-content li>a, .dropdown-content li>span");
  
  //index==0 is the disabled option element
  options_elem.forEach(function(element, index){
    if(index == "2") element.classList.add("materialize-red-text"); //or you could use class "redtext"
  });
}
.redtext {
    color: red !important;
}
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>

<div class="input-field col s12">
  <select>
      <option value="" disabled selected>Choose your option</option>
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
    </select>
  <label>Materialize Select</label>
</div>

关于jquery - MaterializeCSS 更改某些选项的选项颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411019/

相关文章:

html - 实现 CSS : Always show side-nav even on mobile?

jquery - CSS:使类优先于元素样式

javascript - 使用带有 Tab 内容移动的 Jquery 制作动画

php - 如何在 woocommerce 的购物车页面更改邮政编码的占位符文本

css - 让 <table> 通过 CSS 扩展宽度

css - 在实现 css 中更改 float 按钮位置?

html - 布局 slider Material 设计

javascript - 如何解决打开和关闭 div Bootstrap 问题?

javascript - jquery 通过 id 选择当前正在播放的音频

javascript - 使用Jquery点击功能,有的地方执行代码,有的地方不执行