我编写了一些js代码来循环遍历html文档,我的循环只是在0之后停止[这是循环的开始]
for (i=0;i<10;i++) {
if (jsBox >= 0) {
for (i=jsBox;i<documentContent.length;i++) {
if (documentContent[i] == '[') {
startJs = i;
console.log(startJs);
break;
}
};
} else {
console.log('Note: no js container found');
}
//find end of css
for (i=startJs;i<documentContent.length;i++) {
if (documentContent[i] == ']') {
endJs = i;
console.log(endJs);
break;
}
}
}
和代码里面的代码有关系吗?内循环中的break;
语句是否也会破坏外循环,如果是的话,我怎样才能只跳出一个循环?
-谢谢
最佳答案
Is it something to do with the code inside the code?
是的。
Does
break;
statement in the inner loop also break the outer loop
没有。但内循环确实修改了外循环的计数器变量。您应该使用不同的变量名称,并且 local variables :
// assuming already declared: jsBox, documentContent, startJs, endJs
for (var i=0;i<10;i++) {
if (jsBox >= 0) {
for (var j=jsBox; j<documentContent.length; j++) {
if (documentContent[j] == '[') {
startJs = j;
console.log(startJs);
break;
}
}
} else {
console.log('Note: no js container found');
}
//find end of css
for (var j=startJs; j<documentContent.length; j++) {
if (documentContent[j] == ']') {
endJs = j;
console.log(endJs);
break;
}
}
}
顺便说一句,旧版 IE 不支持括号表示法来访问字符串的字符。你最好使用简单的 indexOf
String method比那些循环:
var startJs = documentContent.indexOf('[', jsBox),
endJs = documentContent.indexof(']', startJs);
关于javascript - 我的 js for 循环在 0 之后停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18233651/