Динамическое изменение цвета
Существует две возможности, во-первых, материализованные компоненты не были полностью инициализированы, прежде чем вы попытаетесь динамически изменить их CSS (и, следовательно, этого не происходит).А во-вторых, ваши селекторы недостаточно конкретны.
Приведенный ниже код действует так, как вы хотите.
$( document ).ready(function() {
$(".dropdown-content.select-dropdown > li span").css("color", "red");
});
NB. Задумывались ли вы о применении одного класса темы ктело вашего документа?Это сохранит много динамических вызовов jquery после загрузки страницы.См. Пример ниже.
Демо
// Initialise select
$(document).ready(function() {
$('select').formSelect();
});
// Wait for page to be ready before applying CSS changes
$( document ).ready(function() {
$(".dropdown-content.select-dropdown > li span").css("color", "red");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<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="" 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>
Опция темы
Это был бы гораздо лучший подход, используя селекторы CSS и затем просто применяя один класс к телустраницы (или некоторого другого высокоуровневого родительского элемента).
Это позволит полностью избежать проблемы инициализации.
// Initialise select
$(document).ready(function() {
$('select').formSelect();
});
// Change themes dynamically
$("#blue").click( function() {
$("body").removeClass("redTheme").addClass("blueTheme");
})
$("#red").click( function() {
$("body").removeClass("blueTheme").addClass("redTheme");
})
.blueTheme .dropdown-content.select-dropdown > li span {
color: blue;
}
.redTheme .dropdown-content.select-dropdown > li span {
color: red;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<body>
Select theme:
<button id="red">Red Theme</button>
<button id="blue">Blue Theme</button>
<hr>
<div class="input-field col s12">
<select>
<option value="" 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>
</body>