当百分比小于或等于 50% 时,如何将渐进条形图类从进度条成功更改为进度条危险



我有一个渐进式条,当工作正常时,但我试图实现的是,如果百分比低于 50%,我希望渐进式条从绿色变为红色。我正在 jQuery 中工作,但没有得到结果,我可以得到一些帮助吗?

提前致谢

<td>
<span class="header-text">
<div class="progress-bar progress-bar-success progress-bar-striped active progressbartextcolor" id="below50percent" role="progressbar" aria-valuenow="25" aria-valuemin="0" v-bind:style="{width: customerLoan.progress + '%'}" aria-valuemax="100">{{customerLoan.progress || "0"}}%</div>
</span>
</td>
<script>
$(document).ready(function(){
var bars = 
$('{{customerLoan.progress}}');
for (i = 0; i < bars.length; i++) 
{
console.log(i);
var progress = $(bars[i]).attr('{{customerLoan.progress}}');                             
$(bars[i]).width(progress + '%');
if (progress <= "50") 
{                                            
$(bars[i]).addClass("progress-bar-danger");
}
}
});
</script>

欢迎来到 SO。我建议你不要将jQuery用于此类操作。Vue.js 有内置的指令,称为 [v-bind:class][1]。您所要做的就是创建具有所有类要求的计算对象,然后将其绑定到进度栏。在这里,我有一个可行的解决方案:

new Vue({
el: "#app",
data: {
customerLoan: {
progress: 40
}
},
methods: {},
computed: {
classObject: function() {
return {
'bg-success': this.customerLoan.progress >= 50,
'bg-danger': this.customerLoan.progress < 50
}
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<table id="app">
<tr>
<td>
<span class="header-text">
<div class="
progress-bar  
progress-bar-striped 
active 
progressbartextcolor" 
id="below50percent" 
role="progressbar" 
aria-valuenow="25" 
aria-valuemin="0" 
aria-valuemax="100"
v-bind:class='classObject'>
{{ customerLoan.progress }}%
</div>
</span>
</td>
</tr>
</table>

您可以手动更改 customerLoan.progress 以确保类更改。希望这对您有所帮助! [1]: https://v2.vuejs.org/v2/guide/class-and-style.html

最新更新