Javascript 如何为函数生成唯一标识符,IDs:评级系统

Javascript 如何为函数生成唯一标识符,IDs:评级系统,javascript,function,uniqueidentifier,rating,Javascript,Function,Uniqueidentifier,Rating,我正在建立一个评分系统,每个选项都包含一个1-5和-1-5的量表。根据您在电子秤上选择的内容,输入字段将填充数字,并高亮显示所选内容 我想做的是在同一个网页上重复这个过程,最多100个刻度,而不为每个刻度写下所有唯一的函数和ID名称 到目前为止,我所拥有的: 函数更改plus1(值){ document.getElementById(“countPlus1”).value=1*value; var i; 对于(i=1;i

我正在建立一个评分系统,每个选项都包含一个1-5和-1-5的量表。根据您在电子秤上选择的内容,输入字段将填充数字,并高亮显示所选内容

我想做的是在同一个网页上重复这个过程,最多100个刻度,而不为每个刻度写下所有唯一的函数和ID名称

到目前为止,我所拥有的:

函数更改plus1(值){
document.getElementById(“countPlus1”).value=1*value;
var i;
对于(i=1;i<6;i++){
document.getElementById(“selectPlus1”+[i]).style.cssText='背景色:rgba(0255,0,0.2);';
}
对于(ii=-5;ii<0;ii++){
document.getElementById(“selectMins1”+[ii]).style.cssText='背景色:rgba(255,0,0,0.2);';
}
document.getElementById(“selectPlus1”+值).style.cssText='背景色:rgba(0255,0);';
document.getElementById(“countMins1”).value=“”;
}
函数1(值){
document.getElementById(“countMins1”).value=1*value;
var i;
对于(i=1;i<6;i++){
document.getElementById(“selectPlus1”+[i]).style.cssText='背景色:rgba(0255,0,0.2);';
}
对于(ii=-5;ii<0;ii++){
document.getElementById(“selectMins1”+[ii]).style.cssText='背景色:rgba(255,0,0,0.2);';
}
document.getElementById(“selectMins1”+value).style.cssText='背景色:rgba(255,0,0);颜色:#fff;';
document.getElementById(“countPlus1”).value=“”;
}
函数changePlus2(值){
document.getElementById(“countPlus2”).value=1*value;
var i;
对于(i=1;i<6;i++){
document.getElementById(“selectPlus2”+[i]).style.cssText='背景色:rgba(0255,0,0.2);';
}
对于(ii=-5;ii<0;ii++){
document.getElementById(“selectMinus2”+[ii]).style.cssText='背景色:rgba(255,0,0,0.2);';
}
document.getElementById(“selectPlus2”+值).style.cssText='背景色:rgba(0255,0);';
document.getElementById(“countMinus2”).value=“”;
}
函数2(值){
document.getElementById(“countMinus2”).value=1*value;
var i;
对于(i=1;i<6;i++){
document.getElementById(“selectPlus2”+[i]).style.cssText='背景色:rgba(0255,0,0.2);';
}
对于(ii=-5;ii<0;ii++){
document.getElementById(“selectMinus2”+[ii]).style.cssText='背景色:rgba(255,0,0,0.2);';
}
document.getElementById(“selectMinus2”+value).style.cssText='背景色:rgba(255,0,0);颜色:#fff;';
document.getElementById(“countPlus2”).value=“”;
}

身体{
显示:块;宽度:100%;高度:100%;最小高度:1000px;边距:0自动;填充:0;背景色:#fff;顶部:0;左侧:0;
}
#选择plus11、#选择plus12、#选择plus13、#选择plus14、#选择plus15,
#选择plus21、#选择plus22、#选择plus23、#选择plus24、#选择plus25{
显示:块;
浮动:左;
高度:40px;宽度:40px;边距:02px;边框半径:50%;背景颜色:rgba(0255,0,0.2);颜色:000;字体大小:85rem;字体重量:400;
}
#选择小数点1-1、#选择小数点1-2、#选择小数点1-3、#选择小数点1-4、#选择小数点1-5,
#选择小数点2-1、#选择小数点2-2、#选择小数点2-3、#选择小数点2-4、#选择小数点2-5{
高度:40px;宽度:40px;边距:02px;边框半径:50%;背景颜色:rgba(255,0,0,0.2);颜色:000;字体大小:85rem;字体重量:400;
}
#countPlus1,#countMinus1,
#countPlus2,#countMinus2{
高度:40px;宽度:40px;边距:0自动;文本对齐:中心;字体大小:1.1rem;字体重量:700;边框:0;边框底部:3px实心#000;
}
#countPlus1,
#countPlus2{
显示:块;
浮动:左;
右边距:10px;
背景:无;
}
#第1项,
#countMinus2{
显示:块;
浮动:对;
左边距:10px;
背景:无;
}
.bizModelRatingTableLabel{
填充:0;
}
标签{
文本对齐:左对齐;
字号:1rem;
}
table.bizModelRatingTable tbody tr td{
保证金:0;
填充:0;
}

我所做的是将changePlus和changePlus函数合并成一个函数,该函数接受发送方(调用函数的元素)和一个值

根据值是正值还是负值,我们确定各种样式应该是什么,以及同级是什么(加号还是减号),并通过向上遍历两个级别来获取行元素,对该组的所有元素(正号和负号)执行必要的操作,查找最近的祖先div元素以找到合适的同级(前一个表示负数,后一个表示正数),然后我们返回同级div并对其子级执行更改

我们使用新添加的类来区分各种元素类型

在CSS中,我将ID标识符(#)更改为使用不必唯一的类标识符(.),因此我们现在将适当的类添加到所有元素中

在HTML中,除了添加类和删除不必要的ID之外,我们现在还发送元素(this)以及onclick属性中的值

函数更改值(发送方,值){
var valueType1、valueType2、backgroundPlus、Background减号、backgroundSelected、同胞、加号、减号;
var row=sender.parentNode.parentNode;
var parentDiv=行最近('div');
backgroundPlus='背景色:rgba(0255,0,0.2);';
背景米