我目前有一个工作网站,其中包含使用Bootstrap的进度条。我还有一个ID,它以下列格式从JSON URL加载数据:http://api.bfhstats.com/api/playerInfo?plat=pc&name=1ApRiL&output=js
在我的页面顶部,我有以下进度条代码:
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"
style="width: 60%" id="progressbar">60%
</div>
</div>
和底部的脚本:
document.getElementById("progressbar").innerHTML = data["player"]["rank"]["next"].relProg+'%';
}
进度条以字符串格式提取所需的数据,因此它正确显示了JSON中的%,但它不会更改样式宽度。这个问题在样式标签中是deffinatly,我尝试过像
这样的东西style="width: #progressbar"
然而,这不起作用。似乎奇怪的是文本有效,但不是实际宽度。
答案 0 :(得分:2)
您必须在从服务器获取document.getElementById("progressbar").style.width
进度数据后使用percentage
手动更改进度条的宽度。
要更改样式宽度:
var percentage = data["player"]["rank"]["next"].relProg,
progressbar = document.getElementById("progressbar");
progressbar.innerHTML = percentage+'%';
progressbar .style.width = percentage+'%';
答案 1 :(得分:1)
您正在更改innerHTML而不是元素的样式。您可以尝试以下方式:
var x = document.getElementById("progressbar");
x.innerHTML = ....; // change the inner HTML
x.style.width = ...; // change the width...
答案 2 :(得分:1)
.style.width = data["player"]["rank"]["next"].relProg+'%';
如果需要,请将其设为字符串。
答案 3 :(得分:1)
var progressbar = document.getElementById("progressbar");
var yourWidth = data["player"]["rank"]["next"].relProg+'%';
progressbar.innerHTML = progressbar.style.width = yourWidth;