Javascript 仅将样式应用于特定的选择选项
我想为我的Javascript 仅将样式应用于特定的选择选项,javascript,jquery,css,Javascript,Jquery,Css,我想为我的选择下拉列表的特定选项添加背景色。目前我正在使用以下选项,但它将颜色应用于下拉列表下的所有选项。我有一个选项是”,这个选项我需要是红色的 if (document.getElementById('agileteams' + x).value.length < 1 && array3[i]['Agile_Team'] == null) { document.getElementById('agileteams' + x).style.backgroundCo
选择
下拉列表的特定选项
添加背景色。目前我正在使用以下选项,但它将颜色应用于下拉列表下的所有选项。我有一个选项是”
,这个选项我需要是红色的
if (document.getElementById('agileteams' + x).value.length < 1 && array3[i]['Agile_Team'] == null) {
document.getElementById('agileteams' + x).style.backgroundColor = "#FF0000";
}
if(document.getElementById('agiletems'+x).value.length<1&&array3[i]['Agile\u Team']==null){
document.getElementById('agileteams'+x).style.backgroundColor=“#FF0000”;
}
我曾尝试向该选项添加一个类并更改CSS,但由于某些原因,这似乎不起作用。以下是jquery版本: 解决方案1:如果您只想在初始加载时设置
背景色
。这需要使用jquery每个
函数迭代中的每个选项
$('select option').each(function(){
if($(this).attr("value") == "" || $(this).attr("value") == undefined)
$(this).css("background-color","#FF0000"); // 'this' refers to the option element inside select
});
解决方案2:如果您希望在选择选项时只设置背景色
。这需要在选择上委派更改事件
$('select').on("change", function(){
if($(this).find("option:selected").attr("value") == "" || $(this).find("option:selected").attr("value") == undefined)
$(this).css("background-color","#FF0000"); // 'this' refers to the element select.
else
$(this).css("background-color","#FFFFFF");
});
工作示例:以下是jquery版本:
解决方案1:如果您只想在初始加载时设置背景色
。这需要使用jquery每个
函数迭代中的每个选项
$('select option').each(function(){
if($(this).attr("value") == "" || $(this).attr("value") == undefined)
$(this).css("background-color","#FF0000"); // 'this' refers to the option element inside select
});
解决方案2:如果您希望在选择选项时只设置背景色
。这需要在选择上委派更改事件
$('select').on("change", function(){
if($(this).find("option:selected").attr("value") == "" || $(this).find("option:selected").attr("value") == undefined)
$(this).css("background-color","#FF0000"); // 'this' refers to the element select.
else
$(this).css("background-color","#FFFFFF");
});
工作示例:您的html看起来像什么?您所拥有的应该可以工作,但请注意,样式设置选项
元素最多只能提供非常零碎的支持。但在Chrome47中,它似乎确实对我有效:。如果你需要这种行为在跨浏览器中是可靠的,我建议你使用一个插件,比如Select2,它可以将select
元素转换为HTML,可以自由设置样式。既然你已经在使用JS,那么你需要记住一点:你是否愿意接受jquery解决方案?@Rorymcrossan谢谢你提供的信息。代码确实可以为下拉列表中的所有选项设置样式,但我只想将下拉列表中的第一个选项设置为红色。您的html看起来像什么?您的html应该可以工作,但请注意,样式设置选项元素最多只能提供非常零碎的支持。但在Chrome47中,它似乎确实对我有效:。如果你需要这种行为在跨浏览器中是可靠的,我建议你使用一个插件,比如Select2,它可以将select
元素转换为HTML,可以自由设置样式。既然你已经在使用JS,那么你需要记住一点:你是否愿意接受jquery解决方案?@Rorymcrossan谢谢你提供的信息。该代码确实可以设置下拉列表中所有选项的样式,但我只想将下拉列表中的第一个选项设置为红色。