我正在尝试创建一个JS功能,允许管理员根据一些(当前不相关的)变量修改网站用户的排名。
为此,我创建了一个显示所有用户的功能,当您单击其中一个名称时,会显示两个按钮。这些按钮可用于将用户向上或向下移动一个等级。当然,移动用户必须切换到已经在等级的移动位置:为此,我(尝试)使用经典的c = a, a = b, b = c
方法。
只要你先移动用户,它就会很好用;如果你想以向下移动用户开始,它什么都不做。
这是小提琴:http://jsfiddle.net/benedekadam/caqcw35h/
请记住,我必须修改它:我使用新创建的较小的数组来存储用户'名字,我已经取出了负责禁用按钮的代码片段,如果它是名字或姓氏 - 所以你只能移动姓氏或者名字缩小。除了这两个变化之外,它与我目前在我的网站中使用的变化相同。
我很确定一个非常简单的错误会导致错误,但我花了大部分时间在最后两个小时试图找到它 - 没有任何成功。
你能帮助我吗?
答案 0 :(得分:0)
你错过了什么,你没有解析' tempszam2' var,是一个整数的字符串值。当你这样做(tempszam2 + 1)时,如果tempszam2 =" 1",tempszam2 + 1会给你" 11"而不是2.所以你需要解析' tempszam2'变量,在向其添加1之前是一个字符串为整数。
function LeMozgat(szam3) {
var tempszam2 = szam3;
document.getElementById("tempName " + tempszam2).style.border = "none";
document.getElementById("tempName " + (parseInt(tempszam2) + 1)).style.border = "1px solid";
var cserename2 = document.getElementById("tempName " + tempszam2).value;
document.getElementById("tempName " + tempszam2).value = document.getElementById("tempName " + (parseInt(tempszam2) + 1)).value;
document.getElementById("tempName " + (parseInt(tempszam2) + 1)).value = cserename2;
szam = parseInt(tempszam2) + 1;
}