将 select 的背景颜色设置为 JQuery 中选定的选项

2024-04-11

这个问题的后续:在 JQuery 中设置选择选项的背景颜色 https://stackoverflow.com/questions/5065167/setting-background-color-of-select-options-in-jquery

我有一个包含多个选择框的页面,如下所示:

<select name="item-0-status" id="id_item-0-status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>

这些是在 django 中自动生成的,因此不可能将 css 类、id 或属性直接应用于选项。选择元素的 ID 为“item-0-status”、“item-1-status”、“item-2-status”等。

我通过以下 JQuery 代码为选项分配颜色:

$('select[id$=-status][id^=id_item-]').children().each(
        function (){
            if($(this).val() == 0){
                $(this).css('backgroundColor','white');
            }
            if($(this).val() == 1){
                $(this).css('backgroundColor','green');
            }
            if($(this).val() == 2){
                $(this).css('backgroundColor','red');
            }
            if($(this).val() == 3){
                $(this).css('backgroundColor','orange');
            }
        }
    );

效果很好。

我还希望选择的元素具有与所选选项相同的背景颜色,我试图使用以下方法来实现:

$('select[id$=-status][id^=id_item-]').each(
        function (){
            $(this).css('backgroundColor',$('option:selected',this).css('backgroundColor'));
        }
    );

然而,这只是将选择元素着色为蓝色(我认为它是从悬停属性而不是背景中获取颜色)。这是在 Firefox 3.6.8 中,就本问题而言,它是唯一涉及的浏览器。

知道如何解决这个问题吗?


将“每个”替换为“更改”

$('select[id$=-status][id^=id_item-]').change(
    function (){
        var color = $('option:selected',this).css('background-color');
        $(this).css('background-color',color);
    }
).change();

这适用于 Chrome。

另请参阅:http://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-media-definitions http://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-media-definitions

支持 django admin 中的自定义 css。

我相信正确的 css 属性是:'background-color'. backgroundColor是 javascript 并且应该像这样使用:$(this).css({backgroundColor:color});但无论如何它似乎都有效,所以没什么大不了的。

EDIT:

如果你想在页面加载时初始化脚本,你可以在后面添加 .change() 。 参见代码。

我还在 Firefox 中测试了这一点,我也看到了这种奇怪的行为(蓝色,带有蓝色?)。

另一个编辑:

好的,下面是 Firefox 的快速修复:

$('select[id$=-status][id^=id_item-]').children().each(function (){
    if($(this).val() == 0){
        $(this).attr('style', 'background-color:white;');
    }
    if($(this).val() == 1){
        $(this).attr('style', 'background-color:green;');
    }
    if($(this).val() == 2){
        $(this).attr('style', 'background-color:red;');
    }
    if($(this).val() == 3){
        $(this).attr('style', 'background-color:orange;');
    }
});

$('select[id$=-status][id^=id_item-]').change(function (){
    var style = $(this).find('option:selected').attr('style');
    $(this).attr('style', style);
}).change();

最后编辑:

如果你使用 css,你甚至可以这样做:

<style>
    select option,
    select {
        background-color:white;
    }

    select option[value="1"],
    select.o1
    {
        background-color:green;
    }

    select option[value="2"],
    select.o2
    {
        background-color:red;
    }

    select option[value="3"],
    select.o3
    {
        background-color:orange;
    }
</style>

<script>    
    $('select[id$=-status][id^=id_item-]').change(function (){
        var color = $(this).find('option:selected').val();

        $(this).removeClass('o1 o2 o3').addClass('o' + $(this).find('option:selected').val());
    }).change();
</script>

另一个编辑:

我遇到了这个,发现我可以缩短它,所以我这样做只是为了好玩:

$('select[id$=-status][id^=id_item-]').children().each(function() {    
    var colors = ['white', 'green', 'red', 'orange'];
    $(this).attr('style', 'background-color:' + colors[$(this).val()] + ';');
});
$('select[id$=-status][id^=id_item-]').change(function() {
    $(this).attr('style', $(this).find('option:selected').attr('style'));
}).change();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 select 的背景颜色设置为 JQuery 中选定的选项 的相关文章

  • jQuery能否获取未绘制的动态元素的大小

    我的意思是如果我用 jQuery 和 DOM 创建一个 Element var MainHolder document createElement div addClass box 如果我打电话MainHolder width 如果不在窗口
  • 如何选择两个元素之间的所有元素

    我想选择两个给定元素之间的所有元素 我有这样的html h2 This is firsty h2 p Some para p ul li list items li li list items li li list items li li
  • CSS 计数器输出不匹配

    有人可以解释一下为什么吗section计数器值总共打印 0h2 tags 这是源代码
  • 使用 jQuery 和 jQuery UI 运行任何 Jest 测试时出现问题

    所以我有一个名为的开源库Angular Slickgrid https github com ghiscoding Angular Slickgrid还没有测试 我正在尝试使用 Jest 但真的很难使用它 该库是旧的 jQuery 数据网格
  • jQuery 仅匹配 div 中的部分 id

    昨天晚上我遇到了一个不寻常的情况 我只需要匹配 id 的一部分 让我用一个例子来让大家明白 我有几个像这样的div div div div div div div jQuery 就像 jQuery div dont know what to
  • CSS 无法与 CodeIgniter 一起使用

    这是我的 CI 代码的一部分 class page extends CI Controller var Page public function construct parent construct this gt Page 1 this
  • 如何删除事件监听器?

    下面是我的事件监听器代码 window addEventListener beforeunload function e if sessionStorage token abide call api 如果我想删除这个事件监听器 我该怎么办
  • Magento 中的 jquery/prototype 冲突

    这是一个基于 Themeforest 的 Acumen 主题的 Magento 商店 出乎意料的是 jquery 的东西现在不起作用了 Acumen 通过 magento 静态块加载 jquery 但这些都没有被触及 昨天我正在努力添加 j
  • 访客客户检查 Woocommerce 订单账单电子邮件时可享受首单折扣

    通过对照正在处理和已完成的订单检查来宾客户的电子邮件地址 如果电子邮件没有订单 我想给来宾 首单折扣 如果这能在客人输入电子邮件时发生 那就太好了 我想我已经成功制作了折扣代码 现在我请求帮助合并这两个代码 使其一切正常 这是折扣代码 ad
  • 标点符号加载“动画”,javascript?

    我正在寻找一种好方法来显示一些标点符号加载 动画 我想要的是这样的 This will display at second 1 Waiting for your input This will display at second 2 Wai
  • 如何在 jQuery 中使用 CSS“background-image”属性添加的图像上绑定单击事件

    这是我的小提琴link http jsbin com otisur 1 edit 我想我的问题通过标题本身就很清楚了 尽管如此 我正在寻找一种绑定的方法click使用 css 添加的图像上的事件background image财产 我知道
  • JavaScript:参数列表后缺少 )

    这个 JavaScript 产生一个错误 参数列表后缺少 在 firebug 中使用代码 我究竟做错了什么 功能d缺少左括号 answer after 不应该逃避 只需常规报价即可
  • jQuery 单属性、带过滤器的多值选择器

    Images var boxlinks a href filter href png href gif href jpg href jpeg 有没有更有效的方法来使用 jQuery 中的过滤器选择单个属性的多个值 这里我尝试仅选择带有图像作
  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • 更改文本框中一个字符的颜色 HTML/CSS [重复]

    这个问题在这里已经有答案了 我正在设计一个网站 我想问一下大家 如何通过CSS改变HTML文本框中字符串中的一个字符的颜色 示例 STACK OVER FLOW 只是 A 字母是红色的 你不能用常规方法做到这一点
  • 无法做到最大宽度

    我有一个页面 内容如下 div testingtestingtestingtestingtestingtestingtestingtestingtesting testingtestingtestingtestingtestingtesti
  • 您网站上的自定义 jQuery 脚本有多少行代码?多少才算是太多呢?

    对于我们的网站 我使用了大量 jQuery 现在我正在查看基础库顶部的 340 行 jQuery 代码 多少是太多了 我将添加更多内容 我什么时候开始尝试压缩代码并最终转向 OOP 行数并不意味着什么 重要的是你实际上在做什么 您可能拥有
  • .net dropdownlist对齐文本

    我正在尝试将 net 下拉列表中的文本向右对齐 使用 CssClass 我可以在 Firefox 中将文本向右对齐 IE 不会将文本右对齐 而是左对齐 我读到 IE 6 不支持这个 这是真的 我使用的是 IE7 但我的大多数用户将使用 IE
  • 附加元素在 IE11 中不起作用

    在构造函数中我创建一个元素 var this legendElement this compileLegend 后来我想在事件监听器中使用它 var takeControl function this element empty this
  • 两个 div 之间的匿名空白

    这里是Fiddle http jsfiddle net y6hSV 1 我有两个divs一个用于标题 另一个用于主体 在 的里面div这是标题 我还有另一个div那个 div 是floated left 因为那个floating 两者之间出

随机推荐

  • 由于函数 asprintf 无法编译程序

    找到此代码 需要停止将戴尔笔记本电脑中的 CPU 节流至 20 这是由于电源适配器无法被计算机识别而发生的 尝试在 Kubuntu 上编译并得到以下结果 warning implicit declaration of function as
  • 继续处理结果的 Null 值(Nodejs、Puppeteer)

    我刚刚开始使用 Puppeteer Headless Chrome 和 Nodejs 我正在抓取一些测试站点 当所有值都存在时 一切都很好 但如果该值丢失 我会收到如下错误 Cannot read property src of null
  • Microsoft Azure Graph API下载项附件内容

    当我在office365网页浏览器页面中打开电子邮件时 有一个选项可以下载该电子邮件的附件内容项目附件 使用 Microsoft Outlook 将另一封邮件附加到当前邮件 eml 文件 内容类型 RFC 822 但是 当我尝试通过 Gra
  • 监控 Spring Embedded Tomcat 指标

    我想监控 Spring Boot 服务中嵌入的 Tomcat Spring 本身为我提供了一些会话使用统计信息 但我需要有关底层线程池的其他信息 如活动连接 队列长度等 我搜索了注册的bean 但找不到使用的线程池 关于如何检索该信息有什么
  • PHP:如何检查一年中的季节并相应地设置类别

    我有一个网站 它在标题区域使用 4 种不同的背景图像 这些图像在视觉上对应于耳朵的季节 夏季 秋季等 对于夏季时间框架 我使用一张图像 对于秋季时间框架 使用另一张图像 依此类推 问题是 一旦一年中的季节发生变化 我就必须手动更改这些图像
  • 使用office.js进行office加载项开发时,无法在word文档的书签中插入文本

    我正在开发一个 word 插件 主要任务是使用数据库中的数据填充文档中的书签 在 office js 中 我发现书签可以作为范围对象进行访问 并且我正在使用 rangeObject insertText text insertLocatio
  • wpf c# 按钮等待按钮按下

    好吧 我是编码初学者 所以我想做的是按钮谁会等待用户单击多个其他按钮之一以继续 void Mainbutton the program run throw so method Wait for the user to choose one
  • 了解 htaccess 文件匹配代码

    我正在尝试将 drupal 安装在我的 bluehost 托管网站的子目录中 这是一个巨大的痛苦 我认为 htaccess 中的以下几行是问题所在 当我当前导航到 mysite com subdir install php 时 出现 403
  • SML 中的 'a 和 ''a 有什么区别?

    例如 fun example a a list list a 将有以下签名 a list gt a list 如果我定义不同但内容相同怎么办 例如 fun example a a list list a 它的签名是 a list gt a
  • Android 手持设备和穿戴设备收不到消息

    我正在尝试从可穿戴设备向手持设备发送消息 然后从手持设备向可穿戴设备发送响应 两个模块都使用相同的代码和逻辑 Gradle compile com google android support wearable 2 0 0 alpha2 c
  • 图像数据类型 SQL Server 2008 C# 数据类型

    我创建了一个数据表 CREATE TABLE ProductImages ProductImageID int IDENTITY 1 1 NOT NULL ProductImage image NOT NULL CONSTRAINT PK
  • 设置属性“system.windows.resourcedictionary.deferrablecontent”引发异常

    我正在运行 Visual Studio 2012 当我向项目添加新文件 引用时 会出现消息框并显示错误消息 设置属性 system windows resourcedictionary deferrablecontent 引发异常 我读了一
  • Linux:如何对系统内存施加负载?

    我正在开发一个小功能 它可以让我的用户了解 CPU 的占用情况 我在用着cat proc loadavg 它返回众所周知的 3 个数字 我的问题是 当我正在开发时 CPU 目前没有做任何事情 有没有一种好方法可以在CPU上产生一些负载 我在
  • iOS 不使用[电子邮件受保护]

    我有 3 张图片 test png email protected cdn cgi l email protection email protected cdn cgi l email protection 在IBOutlet中 设置一个U
  • 如何绘制高分辨率图表

    我使用 matplotlib 绘制了一些实验结果 在这里讨论过 循环文件并绘图 https stackoverflow com questions 39676294 looping over files and plotting pytho
  • 计算非凸多面体的外向法线

    如果多面体的所有节点 可能是非凸的 及其坐标已知 面的点按顺序给出 绕外法线逆时针或顺时针 如何获得每个面的外法向量脸 这是凸多面体的一种方法 计算面法线和缠绕 https stackoverflow com questions 40454
  • 使用 Angular CLI 命令安装 Bootstrap 时如何解决依赖冲突?

    我尝试使用 CLI 命令在我的 Angular 应用程序中安装 Bootstrap ng 添加 ng bootstrap ng bootstrap 但我得到了以下错误回报 使用 Angular CLI 命令安装 Bootstrap 时如何解
  • NHibernate 中的延迟加载

    如果客户有很多订单 如何使用 NHibernate 延迟加载订单列表 是不是需要设置映射文件 任何帮助或例子都会很棒 克里斯的建议是我如何做到这一点 但是如果您想在运行时执行此操作 您可以根据您的标准将 Fetchmode 设置为惰性 如下
  • 忽略忽略属性

    我们有 MSTest 测试 它会在每小时的生产中自动运行 其中一项测试标有 Ignore 属性 因为它还没有准备好在我们的生产环境中运行它 现在我想 仅 在我的本地环境上启动该测试 因为我的本地环境已准备好进行该测试 我尝试通过单击测试代码
  • 将 select 的背景颜色设置为 JQuery 中选定的选项

    这个问题的后续 在 JQuery 中设置选择选项的背景颜色 https stackoverflow com questions 5065167 setting background color of select options in jq