javascript - 递归函数返回空数组
问题描述
此代码旨在将所有子元素及其子元素放入一个数组中。但是它返回一堆空数组。
function get_independent_elements_from(element) {
var independent_elements = [];
if (element.hasChildNodes()) {
var children = element.children;
for (let child of children) {
independent_elements = independent_elements.concat(get_independent_elements_from(child));
}
} else {
independent_elements.push(element);
}
return independent_elements;
}
解决方案
如果元素是这样的:
<p>hello world</p>
element.hasChildNodes() 将返回 ture,但 element.children 返回一个空的 HTMLCollection。
您可以更改 if 条件以进行尝试。
if (element.children.length) { xxx }
谢谢你给我建议或意见。
推荐阅读
- node.js - 有没有办法选择 mongoDB 上以特定字母开头的所有文档?
- java - Java 中 if 语句的长度是否有限制?
- javascript - 用于输入类型文件的反应式上传表单的 Jest 测试用例(角度 7)
- html - 仅当使用css溢出时如何向div元素添加垂直滚动条?
- javascript - 在 Vue 项目中重构数据服务
- sql-server - 在 SQL Server 中使用 % char 格式化列结果
- python - 如何在下载文件之前从链接中获取文件名?
- mysql - 最优数据库结构
- python-3.x - python venv 创建一个非空的 venv
- .net - 当我在 ASP.NET MVC 中使用此代码时,它会在数据库中插入 2 行。1 为空,另一行是我输入的数据