簡體   English   中英

如何根據顯示的值更改徽章顏色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM