javascript - 如何根据显示的值更改徽章颜色
问题描述
我正在使用 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>
希望有帮助,
推荐阅读
- php - 使用 Ajax 使用 Select 选项更新数据库,而不是使用按钮的表单
- sql-server - 在 DB2 中选择 Top rows 和 Order by NEWID()
- python - Python 格式化字符串
- ibm-midrange - 捕获 IBM i Db2 SQL“替代文件名”
- xcode - App Store 连接 Xcode APK。由离子 4 生成
- javascript - 对象扩展过滤器键
- node.js - 仅在特定时间运行一次 Google Cloud 函数
- python - 如何使用folium在地图上的图层内使路线可勾选
- html - 无法在 Edge 中将 div 的内容向左对齐
- python-3.x - 当我尝试在最后的列表中插入值时,它给了我 None