Javascript hsl中背景色的样式div,js根据评级计算发光值

Javascript hsl中背景色的样式div,js根据评级计算发光值,javascript,hsl,Javascript,Hsl,我属于一个国际象棋俱乐部,那里的棋手等级从0到2500不等 我想用hsl值设置每个屏幕元组的样式,类似于: hsl(189100%,XX%);//其中XX=玩家等级/25 //获取元组DIV ID: var pirate = document.getElementById( 'BOX_' +id_num); //OK it works //获得评级: rating_rank = document.getElementById("Y" +id_num); // PLAYER

我属于一个国际象棋俱乐部,那里的棋手等级从0到2500不等 我想用hsl值设置每个屏幕元组的样式,类似于: hsl(189100%,XX%);//其中XX=玩家等级/25

//获取元组DIV ID:

var pirate = document.getElementById( 'BOX_' +id_num); //OK it works
//获得评级:

rating_rank = document.getElementById("Y" +id_num); // PLAYER RATING
//数学不起作用//示例:玩家等级=1500,然后等级系数:1500/25=>60

rating_factor = (parseINT(rating_rank) / 25).toString() +"%"; // this line is the culprit, I think

function get_random_color() {
    pirate.style.backgroundColor = 'hsl(189, 100%,' + rating_factor +')'; // THIS DW!
    pirate.style.backgroundColor = 'hsl(189, 100%, 60%)'; // THIS WORKS!
}

get_random_color();

我做错了什么。。。缺少一个字符串到整数的转换以便于计算?

我在一个在线编译器中尝试了你的代码。我不确定您在将代码复制到StackOverFlow时是否犯了拼写错误,但它是parseInt()而不是parseInt()

这对我有用


编辑您没有将结果与100相乘以将其转换为百分比。

正如Surya K指出的那样,函数应该命名为。另一件事是,您可以通过使用来分离数学和字符串操作。它使您的代码干净

document.getElementById('rating'))
.addEventListener('change',函数(e){
//obtian用户评级表文本框
var评级=parseInt(即currentTarget.value);
//计算亮度
var亮度=额定值/25;
//将亮度替换为hsl(),并将其设置为div background color
document.getElementById('playerTuple').style.backgroundColor=`hsl(189100%,${lightness}%)`;
});
.playerTuple{
高度:20px;
边框:1px纯黑;
文本对齐:居中;
}
玩家等级:

播放器元组
非常感谢您的帮助。我的问题肯定解决了。
var ranking = 10
rating_factor = ((parseInt(ranking) / 25)*100).toString() +"%"
console.log('hsl(189, 100%, ' + rating_factor +')'); //OUTPUT: hsl(189, 100%, 40%)