[英]How to change a badge color depending on the value it is showing
我正在使用HTML,Bootstrap 3和jQuery設計網站的前端部分。 我想根據它的值來改變徽章的顏色(它將來會從數據庫獲取值,現在它在HTML上),但它現在無法正常工作。
我在我的HTML文件中有這個
<span class="badge" id = "rating" onload="ratingColor()">Rating: 0/10</span>
這是我的js文件
function ratingColor() {
var a=document.getElementsById("rating");
var num=a.charAt(8);
if(num<5){
a.className ="badge badge-error";
}
else if(num<7 && num>5){
a.className ="badge badge-warning";
}
else{
a.className ="badge badge-success";
}
}
為什么不起作用? 它只是保持灰色。 謝謝!
將onload
放在body元素中,並將元素包裝在其中。
ratingColor = () => { let el = document.getElementById("rating"); let num = el.innerText.match(/Rating: ([0-9]+)\\//)[1]; if (num < 5) { el.className = "badge badge-error"; } else if (num < 7 && num > 5) { el.className = "badge badge-warning"; } else { el.className = "badge badge-success"; } }
<body onload="ratingColor()"> <span class="badge" id="rating">Rating: 3/10</span> </body>
或者,如果您需要僅將onload
應用於<span/>
元素,您可以執行以下操作:
ratingColor = () => { let el = document.getElementById("rating"); let num = el.innerText.match(/Rating: ([0-9]+)\\//)[1]; if (num < 5) { el.className = "badge badge-error"; } else if (num < 7 && num > 5) { el.className = "badge badge-warning"; } else { el.className = "badge badge-success"; } } document.getElementById("rating").onload = ratingColor();
<span class="badge" id="rating">Rating: 3/10</span>
希望有所幫助,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.