方框

时间:2017-11-18 14:48:30

标签: jquery html

我有以下网站(查看我的附件),有4个方框。激活特定状态时,将启用所有框。

enter image description here

在此示例中,我有以下状态: - 1.1 =(前1代表方框1,第二位代表:我要激活哪个背景红色(数字:0)或绿色(数字:1)。在我的例子中,我激活了绿色框。赞:{{ 1}}(数字1)和addClass('list-group-item-success');(数字0)

我想要的是所有盒子。示例:如果我的系统推送状态:3.1,那么我希望系统为方框1到3(绿色,成功)的背景着色。

另一个例子:如果状态是:4.0。然后所有1到3的方框都需要涂成绿色(成功),第4个方框需要是红色(类危险)。

这怎么可能?

当前HTML

addClass('list-group-item-warning');

jQuery :(这根本不起作用,因为它只是着色盒1)。

<div class="list-group">
  <a href="" id="psLoggedIn" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Voorgemeld</strong> <span id="psStatusLoggedIn" class="badge"></span></h5>
      <small id="psSignLoggedIn" class="text-muted"></small>
    </div>
    <p class="mb-1">Uw pakket is aangemeld bij de vervoerder en is bekend.</p>
    <small id="psInfoLoggedIn"></small>
  </a>
  <a href="" id="psDepot" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>In depot</strong> <span id="psStatusDepot" class="badge"></span></h5>
      <small id="psSignDepot" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending bevindt zich in een centraal depot. Zending wordt gesorteerd naar uw regio.</p>
    <small id="psInfoDepot"></small>
  </a>
  <a href="" id="psInTransit" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Onderweg</strong> <span id="psStatusInTransit" class="badge"></span></h5>
      <small id="psSignInTransit" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending is onderweg voor aflevering op uw adres.</p>
    <small id="psInfoInTransit"></small>
  </a>
  <a href="" id="psDelivered" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Geleverd</strong> <span id="psStatusDelivered" class="badge"></span></h5>
      <small id="psSignDelivered" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending is geleverd</p>
    <small id="psInfoDelivered"></small>
  </a>
</div>

1 个答案:

答案 0 :(得分:0)

嗯,这可能不是很漂亮,但它确实有效,实际代码很短:

var steps=$('a div.d-flex','.list-group'); // collect the divs to be colored ...
$('input#code').keyup(function(){var fld,col;
  [fld,col]=$(this).val().split('.');  // parse code into fld and col
                                       // only step into action for valid codes ...
  if (fld>0&&fld<5&&(col==='0'||col==='1')){
    // first: remove all "success" and "warning" classes 
    steps.removeClass('list-group-item-success list-group-item-warning')
    // then: assign success to all but the last step
         .slice(0,fld-1).addClass('list-group-item-success');  
    // assign the last step ("warning" or "success", according to col)
    steps.eq(fld-1).addClass('list-group-item-'+['warning','success'][col]);        
  }
})
.list-group-item-success {background-color:#cfc}
.list-group-item-warning {background-color:#fcc}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input id="code" placeholder="enter code here"/><br>
<div class="list-group">
  <a href="" id="psLoggedIn" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Voorgemeld</strong> <span id="psStatusLoggedIn" class="badge"></span></h5>
      <small id="psSignLoggedIn" class="text-muted"></small>
    </div>
    <p class="mb-1">Uw pakket is aangemeld bij de vervoerder en is bekend.</p>
    <small id="psInfoLoggedIn"></small>
  </a>
  <a href="" id="psDepot" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>In depot</strong> <span id="psStatusDepot" class="badge"></span></h5>
      <small id="psSignDepot" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending bevindt zich in een centraal depot. Zending wordt gesorteerd naar uw regio.</p>
    <small id="psInfoDepot"></small>
  </a>
  <a href="" id="psInTransit" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Onderweg</strong> <span id="psStatusInTransit" class="badge"></span></h5>
      <small id="psSignInTransit" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending is onderweg voor aflevering op uw adres.</p>
    <small id="psInfoInTransit"></small>
  </a>
  <a href="" id="psDelivered" data-toggle="modal" class="list-group-item list-group-item-action flex-column align-items-start disabled">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1"><strong>Geleverd</strong> <span id="psStatusDelivered" class="badge"></span></h5>
      <small id="psSignDelivered" class="text-muted"></small>
    </div>
    <p class="mb-1">Zending is geleverd</p>
    <small id="psInfoDelivered"></small>
  </a>
</div>