无法在 HtmlCollection 上迭代
unable to iterate on HtmlCollection
本文关键字:迭代 HtmlCollection 更新时间:2023-09-26
我对一个简单的代码有问题
var x = document.getElementsByTagName("th");
var plop = Array.prototype.slice(x);
console.log(x);
console.log(x.length);
console.log(plop);
输出
[item: function, namedItem: function]
0: th.fc-day-header.fc-sun.fc-widget-header.fc-first
1: th.fc-day-header.fc-mon.fc-widget-header
2: th.fc-day-header.fc-tue.fc-widget-header
3: th.fc-day-header.fc-wed.fc-widget-header
4: th.fc-day-header.fc-thu.fc-widget-header
5: th.fc-day-header.fc-fri.fc-widget-header
6: th.fc-day-header.fc-sat.fc-widget-header.fc-last
length: 7__proto__: HTMLCollection
controller.js:309 0
controller.js:310 []
为什么我在这里看到长度 7 而 x.length 给出 0 ?
提前致谢
更新:我设置了代码
$scope.$on('$viewContentLoaded', function(){
}
它现在有效。我还无法设置点击方法,但它进展^^
$scope.$on('$viewContentLoaded', function(){
var x = document.getElementsByTagName("th");
var arr = Array.prototype.slice.call(x);
console.log(arr);
for (var i = 0; i < arr.length; i++) {
// console.log("iterate");
console.log(arr[i]);
arr[i].onclick = function(){
console.log("lol");
};
}
};
当您尝试从HTMLCollection
创建数组副本时,您错过了.call()
。 取而代之的是:
var x = document.getElementsByTagName("th");
var plop = Array.prototype.slice(x);
您可以这样做:
var x = document.getElementsByTagName("th");
var plop = Array.prototype.slice.call(x);
console.log(plop);
注意:您不需要仅仅为了迭代它而制作数组副本。 您可以直接迭代 HTMLCollection:
var items = document.getElementsByTagName("th");
for (var i = 0; i < items.length; i++) {
console.log(items[i]);
}
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- jQuery-迭代不正确?(太长,无法执行)
- 每个$.,循环获胜't逐个迭代HTML元素
- 如何在Jquery中迭代JSON数组
- 从JSON API结果迭代时未定义