javascript - 如何在Javascript中循环后使用变量?
问题描述
我得到一个带有 Javascript 的元素,
var els = document.getElementsByTagName("a");
for(var i = 0; i < els.length; i++) {
if(els[i].nodeValue == 'Something') {
var el = els[i];
break;
}
}
console.log(el);
我怎样才能确定循环之前已经完成console.log
?
请注意,我不能放入console.log
循环中。这只是一个简单的例子,我需要el
进一步处理。
解决方案
如何确定循环在 console.log 之前完成?
因为您正在使用 for 循环进行循环,这是一个同步循环。
for (var i = 0, max = 1000000; i < max; i++) {
}
console.log('Finished');
上面,finished 将始终在 for 循环完成它的最后一次迭代后执行。
在您的示例中,您可以确定您的日志将在循环之后执行,因为我上面说过。您无法确定的是您的变量是否未定义。
var els = document.getElementsByTagName("a");
for(var i = 0; i < els.length; i++) {
// If this does not get hit, your 'el' will be undefined.
if(els[i].nodeValue == 'Something') {
var el = els[i];
break;
}
}
console.log(el);
仅供参考(顺便说一句),您应该查看 javascript 中的提升,您在 IF 语句中声明您的“el”变量,但是没有使用 var 的块范围,即您可以/应该在 els 变量下定义 el 变量, 以免混淆。
例如
var els = document.getElementsByTagName("a");
var el;
for(var i = 0; i < els.length; i++) {
// If this does not get hit, your 'el' will be undefined.
if(els[i].nodeValue == 'Something') {
el = els[i];
break;
}
}
console.log(el);
推荐阅读
- java - JSONObject 总是返回 "empty": false
- python-3.5 - 不能腌制
: pywintypes 上的属性查找日期时间失败 - websocket - WebSocket 的并发用户负载测试在 JMeter 中未正确执行
- python - 如何让 python 记住某个名称的输入?
- python - 仅列出嵌套数据框中的第一行
- javascript - 如何使用 react-intl 在 React 应用程序中访问当前语言环境
- dialogflow-es - 训练短语顺序有保证吗?
- javascript - 提交表格后写作评分问题
- xml - 每当我在输入 XML 中使用 CDATA 使用 XSLT 进行转换时,CDTA 元素值都已损坏
- python - 排序有问题(元组列表)