不要做不止一次,要做一段时间,但不要做
wont do FOR more than once, do the while, but the for not
此代码,
for (a = 0; a < 5;a++){
var namex = document.getElementsByClassName("tooltip_sticky")[a].getAttribute("name",2);
var n=namex.split("'");
i = 0;
while(i < 30) {
var achou = n[i].indexOf("mission=1");
if (achou == -1) {
alert(achou);
i++;
}
else {
alert("Lol");
i++;
}
}
}
它必须先运行a为0,然后运行while 30次,返回a,将a设置为1,运行while更多30次,回到a,设置为2,运行which 30次。。。
但它做了前30次WHILE,然后停了下来,为什么不回到FOR?
这里的基本问题是只有两个原因导致循环无法继续:
-
您没有显示的内容是更改
a
或的值 -
正在引发错误(这种可能性更大)。
在后一种情况下,可以在浏览器的JavaScript控制台中找到错误。
在任何一种情况下,使用浏览器中内置的调试器单步执行代码都可以帮助您找出错误所在
从评论中,听起来var n=namex.split("'");
不一定会产生一个至少有30个元素的数组。所以你需要改变你的内部循环:
var n=namex.split("'");
i = 0;
while(i < n.length) { // <=== Change is here
否则,n[i]
可能是undefined
,并且尝试对其调用方法将抛出错误。
FWIW,您的while
循环也想成为for
循环:
for (i = 0; i < n.length; ++i) {
var achou = n[i].indexOf("mission=1");
if (achou == -1) {
alert(achou);
}
else {
alert("Lol");
}
}
您的代码中没有显示任何a
或i
的声明。我想你已经在某个地方声明了它们;否则,您将成为隐式全球化的恐怖的牺牲品。
最后:据我所知,getAttribute
只接受一个论点,而不接受两个。
相关文章:
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 如何在设定的时间间隔内一次只显示一个图像
- 收集一段时间内的EMG数据.建议JS
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- 一段时间后调用函数,但只调用一次
- 视频.JS - 一次在确切时间触发多个事件
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 如果通过 ajax 调用 PHP 页面需要一段时间才能运行/返回(并且它设置了会话变量),则第二次 ajax 调用会看到
- 在页面加载时禁用 CSS 动画,但每隔一段时间工作一次
- JAVASCRIPT/JQuery如何在一次以上的时间内执行
- 如何在浏览器中使用F12控制台在javascript中每隔一段时间执行一次
- 不要做不止一次,要做一段时间,但不要做
- 如何使setInterval在一段时间后或多次操作后停止
- 在RxJS中,对一段时间内的事件进行计数,并每秒产生一次总和
- oidc-client CheckSessionIFrame正确触发一次,然后每隔一段时间失败一次
- 输入字段类型文本具有onkeypress调用函数不止一次的属性
- 火灾调整事件一次不基于时间
- Javascript-在只运行一次脚本之前等待一段时间
- Javascript进度条不更新'在飞行',而是一次一次进程完成