- Realized by recursive call
/* 用来装所有的标签名 */
let arr = []
function getChildTag(parentNode) {
arr.push(parentNode.nodeName)/* 将父节点的标签名push到数组当中 */
/* 如果子节点长度大于0,说明这个节点里面还有子节点,则这个就作为父节点传进去 */
if (parentNode.children.length > 0) {
let arr1 = Array.from(parentNode.children).forEach(item => {
getChildTag(item)
})
}
}
new Set(getChildTag(document.documentElement))
- ES6 syntax to achieve
new Set(Array.from(document.getElementsByTagName('*')).map(item => item.nodeName))
new Set([...document.getElementsByTagName('*')].map(item = > item.nodeName))