我正在嘗試查找 DIV 中的所有 SPAN 元素,并且該函式回傳所找到的 SPAN 陣列。
下面我做了一個遞回函式,但是它帶來了43個SPAN,我預計是7個SPAN:
function findRecursive(myElement, elementName, element) {
if (element == null){
element = {'element':null, 'array':[]}
}
if (element['element']) {
myElement = element['element']
}
if (element['array'] === undefined) {
element['array'] = []
}
var arr = element['array']
var els = myElement.getElementsByTagName(elementName)
for (let i = 0; i < els.length; i ) {
const e = els[i];
if (e.tagName == elementName) {
arr.push(e)
}
args = {'element':e, 'array': arr}
findRecursive(null, elementName, args)
}
return arr
}
var e = document.getElementById('main')
var result = findRecursive(e, 'SPAN')
console.log(result)
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="main">
<span>
<span>
<span>
<span>
<span>
mySpan1
</span>
</span>
</span>
<span>
<span>
mySpan2
</span>
</span>
</span>
</span>
</div>
</body>
</html>
這段代碼有什么問題?我應該帶 7 SPAN
uj5u.com熱心網友回復:
我想你可能把它矯枉過正了...... ;-)
document.querySelectorAll('div[id="main"] span');
了解有關querySelector和querySelectorAll 的更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383322.html
標籤:javascript html 递归
上一篇:關于遞回函式回傳正確值的問題(Leetcode572)
下一篇:Prolog:遞回無法正常作業
