Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在功能第二次运行后,如何修复此冻结网站?_Javascript - Fatal编程技术网

Javascript 在功能第二次运行后,如何修复此冻结网站?

Javascript 在功能第二次运行后,如何修复此冻结网站?,javascript,Javascript,所以,当我第一次运行这个函数时,它运行得很好,没有任何问题,但是当我第二次运行它时,网站就冻结了,我什么都做不了 整个功能: function changecurrentBadge() { var image = document.getElementById("currentdivbadge"); var dropd = document.getElementById("old-division"); image.src = dr

所以,当我第一次运行这个函数时,它运行得很好,没有任何问题,但是当我第二次运行它时,网站就冻结了,我什么都做不了

整个功能:

function changecurrentBadge() {
    var image = document.getElementById("currentdivbadge");
    var dropd = document.getElementById("old-division");
    image.src = dropd.options[dropd.selectedIndex].value;

    var name1 = document.getElementById("name1");

    var divisionsList = document.getElementById("old-division");
    var oldrankList = document.getElementById("old-rank");
    var changeRank = divisionsList.options[divisionsList.selectedIndex].value;

    if(dropd.value === "images/empty.png") {
        name1.innerHTML = "None";
    } else if (dropd.value === "images/security.png") {
        name1.innerHTML = "Security";
    } else if (dropd.value === "images/trainer.png") {
        name1.innerHTML = "Trainers";
    } else if (dropd.value === "images/detectives.png") {
        name1.innerHTML = "Detectives";
    } else if (dropd.value === "images/corporals.png") {
        name1.innerHTML = "Corporals";
    } else if (dropd.value === "images/sergeants.png") {
        name1.innerHTML = "Sergeants";
    } else if (dropd.value === "images/lieutenants.png") {
        name1.innerHTML = "Lieutenants";
    } else if (dropd.value === "images/captains.png") {
        name1.innerHTML = "Captains";
    } else if (dropd.value === "images/superintendents.png") {
        name1.innerHTML = "Superintendents";
    } else name1.innerHTML = "ERROR APPEARED";
    
    while (oldrankList.options.length) {
        divisionsList.remove(0);
        
    }
    var ranks = ranksList[changeRank];
    if (ranks) {
        var i;
        for (i = 0; i < ranks.length; i++) {
            var oldrank = new Option(ranks[i], i);
            oldrankList.options.add(oldrank);
        }
    }
}
var ranksList = {};
ranksList['images/security.png'] = ['Trial Inspector', 'Armory Inspector', 'Inspector I', 'Inspector II', 'Inspector III', 'Inspector IV', 'Senior Armored Guard (S.A.G)', 'Asst. Head of Guards (A.H.G)', 'Head of Guards (H.o.G)'];
ranksList['images/trainer.png'] = ['Trial Master', 'Rookie Master', 'Junior Master', 'Master I', 'Master II', 'Master III', 'Master IV', 'Jr. Head Master', 'Head Master', 'Snr. Head Master'];
ranksList['images/detectives.png'] = ['Trial Detective', 'Probationary Detective', 'Junior Detective', 'Detective I', 'Detective II', 'Detective III', 'Senior Detective', 'Acting Supervisory Detective', 'Supervisory Detective', 'Detective in Charge'];
ranksList['images/corporals.png'] = ['Trial Corporal', 'Probationary Corporal', 'Junior Corporal', 'Corporal I', 'Corporal II', 'Corporal III', 'Senior Corporal', 'Lead Corporal', 'Head Corporal', 'Junior Corporal Chief', 'Senior Corporal Chief', 'Deputy Corporal in Charge', 'Corporal in Charge'];
ranksList['images/sergeants.png'] = ['Trial Sergeant', 'Probationary Sergeant', 'Junior Sergeant', 'Sergeant I', 'Sergeant II', 'Sergeant III', 'Senior Sergeant', 'Acting Supervisory Sergeant', 'Supervisory Sergeant', 'Sergeant in Charge'];
ranksList['images/lieutenants.png'] = ['Trial Lieutenant', 'Probationary Lieutenant', 'Junior Lieutenant', 'Lieutenant I', 'Lieutenant II', 'Lieutenant III', 'Senior Lieutenant', 'Acting Supervisory Lieutenant', 'Supervisory Lieutenant', 'Lieutenant in Charge'];
ranksList['images/captains.png'] = ['Trial Captain', 'Probationary Captain', 'Junior Captain', 'Captain I', 'Captain II', 'Captain III', 'Senior Captain', 'Acting Supervisory Captain', 'Supervisory Captain', 'Captain in Charge'];
ranksList['images/superintendents.png'] = ['Trial Superintendent', 'Probationary Superintendent', 'Junior Superintendent', 'Superintendent I', 'Superintendent II', 'Superintendent III', 'Senior Superintendent', 'Acting Supervisory Superintendent', 'Supervisory Superintendent', 'Superintendent in Charge'];
当我运行console.log命令查看它冻结的位置时,第二个日志似乎没有运行,代码如下:

while (oldrankList.options.length) {
        divisionsList.remove(0);
        
    }
    var ranks = ranksList[changeRank];
    if (ranks) {
        var i;
        for (i = 0; i < ranks.length; i++) {
            var oldrank = new Option(ranks[i], i);
            oldrankList.options.add(oldrank);
        }
    }
while(oldrankList.options.length){
删除分区列表(0);
}
var ranks=ranksList[changeRank];
国际单项体育联合会(职级){
var i;
对于(i=0;i

任何帮助都将不胜感激

您正在该代码部分中运行无限循环

while(oldrankList.options.length){
删除分区列表(0);
}
试试这个

for(让j=0;j
冻结可能是由无限循环引起的。我猜是while循环永远不会结束。它确实解决了冻结问题,但现在下拉菜单被破坏,第二个下拉菜单通过删除第一个下拉菜单选项来加载列组,并在第一个下拉菜单中选择两个选项。