我试着做一个简单的循环:
const parent = this.el.parentElement
console.log(parent.children)
parent.children.forEach(child => {
console.log(child)
})
但我得到以下错误:
Uncaught TypeError: parent.children.forEach不是一个函数
即使父母。孩子的日志:
有什么问题吗?
注:这是一个JSFiddle。
我试着做一个简单的循环:
const parent = this.el.parentElement
console.log(parent.children)
parent.children.forEach(child => {
console.log(child)
})
但我得到以下错误:
Uncaught TypeError: parent.children.forEach不是一个函数
即使父母。孩子的日志:
有什么问题吗?
注:这是一个JSFiddle。
当前回答
因为你正在使用ES6的特性(箭头函数),你也可以简单地使用这样的for循环:
(让孩子({0:[{“a”:1、“b”:2},{' c ': 3}]}, {1: []})) { console.log(孩子) }
其他回答
对于对象,试试这个:
Object.keys(yourObj).forEach(key => {
console.log(key, yourObj[key]);
});
不需要forEach,你可以只使用from的第二个参数进行迭代,如下所示:
让节点列表=[{0:[{“a”:1、“b”:2},{' c ': 3}]}, {1: []}] Array.from(nodeList, child => { console.log(孩子) });
的父母。children将返回一个节点列表列表,技术上是一个html集合。这是一个类似于object的数组,但不是数组,所以你不能直接在它上面调用数组函数。在这种情况下,你可以使用array .from()将其转换为一个真正的数组,
Array.from(parent.children).forEach(child => {
console.log(child)
})
如果你试图像这样循环一个NodeList:
const allParagraphs = document.querySelectorAll("p");
我强烈推荐这样循环:
Array.prototype.forEach.call(allParagraphs , function(el) {
// Write your code here
})
就我个人而言,我已经尝试了几种方法,但大多数都不工作,因为我想循环一个节点列表,但这一个工作起来像一个魅力,给它一个尝试!
NodeList不是数组,但我们使用Array将其视为数组。所以,您需要知道旧的浏览器不支持它!
需要更多关于NodeList的信息?请在MDN上阅读其文档。
因为你正在使用ES6的特性(箭头函数),你也可以简单地使用这样的for循环:
(让孩子({0:[{“a”:1、“b”:2},{' c ': 3}]}, {1: []})) { console.log(孩子) }