【发布时间】:2020-05-25 07:23:18
【问题描述】:
我需要使用递归来导航 DOM 中的每个元素,并且对于每个 body 元素,确定它是否是一个元素节点。如果是,我需要向它添加一个子节点。我需要使用 JavaScript 来完成这项任务。以下是我的 JavaScript 文件中的内容:
window.addEventListener("load", function() {
var highlightButton = document.getElementById("highlight");
highlightButton.addEventListener('click', search);
function search(node) {
if (node.nodeType === 1) {
var spanEl = document.createElement("span");
spanEl.className = "hoverNode";
node.appendChild(spanEl);
spanEl.innerHTML = spanEl.parentNode.tagName;
}
}
})
我了解如何追加子节点,但不知道如何遍历整个 DOM 并将子节点追加到每个元素。
【问题讨论】:
-
一个文档只能有一个 HTML 元素,body elements 只能是 HTML 元素的子元素。根据定义,主体元素是元素节点。所以你不需要递归来做到这一点。如果您只想查看文档中的每个元素,那就另当别论了。除非“每个正文元素”实际上是指“正文中的每个元素”?
-
这是一个需要使用递归的学校作业。它特别要求我们导航 DOM 中的每个元素,并且对于 body 中的每个元素,确定它是否是元素节点(nodeType == 1)元素,然后向其添加子节点。
标签: javascript recursion dom