我试着做一个简单的循环:
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。
当前回答
你可以使用childNodes而不是child,考虑到浏览器兼容性问题,childNodes也更可靠,更多信息在这里:
parent.childNodes.forEach(function (child) {
console.log(child)
});
或者使用展开运算符:
[...parent.children].forEach(function (child) {
console.log(child)
});
其他回答
不需要forEach,你可以只使用from的第二个参数进行迭代,如下所示:
让节点列表=[{0:[{“a”:1、“b”:2},{' c ': 3}]}, {1: []}] Array.from(nodeList, child => { console.log(孩子) });
你可以检查你是否输入正确的forEach,如果你像在其他编程语言中那样输入forEach,它将不起作用。
那是因为父母。children是一个NodeList,并且它不支持.forEach方法(因为NodeList是一个类似数组的结构,但不是数组),因此尝试先通过using将其转换为数组来调用它
var children = [].slice.call(parent.children);
children.forEach(yourFunc);
的父母。children是一个HTMLCollection类数组对象。首先,您必须将其转换为一个真正的数组才能使用Array。原型的方法。
const parent = this.el.parentElement
console.log(parent.children)
[].slice.call(parent.children).forEach(child => {
console.log(child)
})
你可以使用childNodes而不是child,考虑到浏览器兼容性问题,childNodes也更可靠,更多信息在这里:
parent.childNodes.forEach(function (child) {
console.log(child)
});
或者使用展开运算符:
[...parent.children].forEach(function (child) {
console.log(child)
});