Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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 停止for循环的If语句_Javascript_Jquery_Loops - Fatal编程技术网

Javascript 停止for循环的If语句

Javascript 停止for循环的If语句,javascript,jquery,loops,Javascript,Jquery,Loops,我正在制作一个表,当值更改时调用以下方法,但是如果变量stuntSet设置为“all”,则update方法将部分终止 当我调用updateStats时,如果stuntSet设置为“all”,它将永远不会退出for循环。当设置为其他值时,它似乎工作正常,并继续调用countStuntRefresh()。奇怪的是,它完成了if语句中检查stuntSet==“all”的所有代码,但它从未到达countStuntRefresh()的调用 我已经经历了一个小时,我找不到我的错误。如果这是一个简单的错误,我

我正在制作一个表,当值更改时调用以下方法,但是如果变量stuntSet设置为“all”,则update方法将部分终止

当我调用updateStats时,如果stuntSet设置为“all”,它将永远不会退出for循环。当设置为其他值时,它似乎工作正常,并继续调用countStuntRefresh()。奇怪的是,它完成了if语句中检查stuntSet==“all”的所有代码,但它从未到达countStuntRefresh()的调用

我已经经历了一个小时,我找不到我的错误。如果这是一个简单的错误,我向你道歉,我感谢你所能给予的一切帮助

是指向完整代码的链接

var selected = false;
var updateStunts = function() {
    for (var i = 0; i < character.stunts.length; i++) {
        if (stuntSet === "all") {
            selected = document.getElementById("select" + character.stunts[i].name).checked;
            character.stunts[i].chosen = selected;
        } else if( stuntSet === character.stunts[i].category) {
            selected = document.getElementById("select" + character.stunts[i].name).checked;
            character.stunts[i].chosen = selected;
        }
    }
    countStuntRefresh();
};

var countStuntRefresh = function() {

    character.spentRefresh = 0;
    for(var i = 0; i <character.stunts.length; i++){
        if (character.stunts[i].chosen) {
            character.spentRefresh += character.stunts[i].cost;
        }
        document.getElementById("stunttest").innerHTML = "Spent Refresh:" + character.spentRefresh;
    }
};
var selected=false;
var updateStunts=function(){
for(var i=0;i对于(var i=0;i当我运行jsbin代码时,会出现一些异常,因为
document.getElementById(“select”+character.stunts[i].name)
返回null

查看代码时,我注意到您没有等待DOM就绪事件

$(function() { /* your code*/ });

(或者jsbin会自动在onload或DOMReady中调用您的代码吗?不熟悉jsbin…

如果它们都做相同的事情,if语句的意义是什么?^更准确地说,这是等效的:
if(stuntSet==“all”| stuntSet==character.stunts[i].category)
。我可能应该在两者之间使用| |。有许多不同的类别,它是为了限制哪些character.stunts选择的属性受到影响。另外,请参阅我对Tim答案的评论。您应该向Stunt对象添加一个额外的变量,如
this.safeid=name.replace(//g,“-”);
并使用safeid作为各种选择的ID。返回null(或者更确切地说是未定义)的原因在于ID:
。ID可能是一个“单词”,比如
选择我的眼角
。我将尝试ID。我不明白的是,当我将特技放在“警觉”上时,“我的眼角”工作完美。当特技设置为All时,它会停止工作。我不明白为什么一个可以工作,另一个不行。Paul成功了!不是空格造成了问题,但一些id有一个撇号,因此关闭了它们。这就是为什么它对有空格的组有效,但无法浏览整个列表。我使用了r替换线条以删除撇号,效果非常好。我希望在您的评论旁边有一个复选标记。谢谢大家。