html - 如何根据从模型中获取的值动态更改div的背景颜色

标签 html css twitter-bootstrap model-view-controller

我有一个看起来是绿色的 div,我想根据来自模型的状态值更改 div 的背景颜色,

<div class="panel-heading" style="background-color:#008E00">

if @Model[0].status=="Normal" - Green 
if @Model[0].status=="LOW" -yellow 
if @Model[0].status=="HIGH" - Red

代码

<div class="panel-heading" style="background-color:#008E00">
                <h3 class="text-center">Xavier School, Nehru Rd</h3>
                <hr>
                DevEUI- @Model[0].deveui.ToUpper().Substring(11, 5) <span style="color:black"></span>
                <hr>
                <div class="row">
                    <div class="col-xs-4">
                        <img src="~/images/manhole1.png" class="img-responsive">
                    </div>
                    <div class="col-xs-4 text-right paddingtop20">
                        <div class="huge"><h2>@Model[0].status</h2></div>
                    </div>
                </div>
            </div>

最佳答案

我假设您使用的是 Vanilla Javascript。 这是一个 ES5(兼容 ES6)的方法示例,可让您更改 div 的颜色:

var Model = [{status: 'Normal'}];

function colorMyDiv(){
    var color = 'black'; // default color
     
    switch (Model[0].status) {
       case 'Normal':
           color = 'green';
           break;
       case 'LOW':
           color = 'yellow';
           break;
       case 'HIGH':
           color = 'red';
           break;
    }
    var colorableDiv = document.getElementById('colorableDiv');
    if(colorableDiv)
         colorableDiv.style.backgroundColor = color;    
}

function test(){
  var states = ['Normal', 'LOW', 'HIGH'];
  var index = 0;
  var changeStateBtn = document.getElementsByTagName('button')[0];
  var stateLog = document.getElementsByTagName('span')[0];
  
  changeStateBtn.onclick = function(event){
    index = (index +1)%3;
    Model[0].status = states[index];
    stateLog.innerHTML = states[index];   
  }
  colorMyDiv();
  setInterval( colorMyDiv, 1000); 
}

test();
<button> Change state </button> 
<p>state : <span>Normal</span> </p>
<div style="width: 50px; height: 50px; margin-top: 20px" id="colorableDiv"></div>

关于html - 如何根据从模型中获取的值动态更改div的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208568/

相关文章:

javascript - 淡化导航并使其在向下滚动时固定,在向上滚动时淡化

javascript - 向下滚动时如何向上移动文本?

html - 将鼠标悬停在链接上时显示菜单子(monad)链接

html - 移动设备未检测到媒体样式表

html - 在 Twitter Bootstrap 框架中将语义有意义的 block 放在哪里?

jquery - 如何防止 jquery 在 bootstrap 4 Accordion 中快速转换时崩溃?

php - 来自 html 的多个操作?

javascript - 在谷歌浏览器中放大时 1 像素的背景重复

javascript - Material-UI样式: convert functional component to class component

javascript - Bootstrap 3 - 3x btn-group,带有下拉动画打开全部