[英]Get span elements within div using javascript
我有一個 html 代碼:
<div id="id0" class="class0">
<span> "1" </span>
<span> "2" </span>
<span> "3" </span>
</div>
問題是如何使用 javascript 將 1,2,3 作為列表?
我試過: document.getElementById 和 document.getElementsByClassName 但沒有任何作用。
您可以使用map
然后刪除quoted marks
以僅獲取number list
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Test</title> </head> <body> <div id="id0" class="class0"> <span> "1" </span> <span> "2" </span> <span> "3" </span> </div> <script> console.clear(); const selectors = document.querySelectorAll('#id0 > span'); const list = [...selectors].map(span => parseInt(span.innerText.replace(/"/g,""))); console.log(list) </script> </body> </html>
您可以在容器 div 上的children
上使用map()
const cont = document.getElementById('id0'); const res = [...cont.children].map(x => x.innerHTML); console.log(res)
<div id="id0" class="class0"> <span> "1" </span> <span> "2" </span> <span> "3" </span> </div>
函數querySelectorAll
是您的朋友。
document.getElementById("id0").querySelectorAll('span').forEach(element => { console.log (element); })
<div id="id0" class="class0"> <span> "1" </span> <span> "2" </span> <span> "3" </span> </div>
使用document.getElementById
和document.getElementsByTagName
獲取元素,然后遍歷它們並將它們添加到列表中。 使用textContent
和innerText
獲取 span 元素的文本。
var spans = document.getElementById('id0').getElementsByTagName('span'); var obj = []; for (var i = 0, l = spans.length; i < l; i++) { obj.push(parseInt(spans[i].textContent.replace(/"/g,"")) || parseInt(spans[i].innerText.replace(/"/g,""))); } console.log(obj);
<div id="id0" class="class0"> <span> "1" </span> <span> "2" </span> <span> "3" </span> </div>
我在這里為你提到這個過程——首先,從文檔中獲取const div = document.getElementById("id0");
,您可以使用其他方法來做到這一點,然后獲取div的所有孩子,您可以通過const spans = div.children;
,現在看spans是包含所有 span 的 HTMLCollection(它是可迭代的)。 現在您遍歷每個跨度並獲取您的 textContent 並根據需要使用正則表達式/其他更改它們並將它們放入列表或其他列表中。
向他人學習的最佳方式是在復制代碼之前先了解代碼。
`
const div = document.getElementById("id0");
const spans = div.children;
for (let i = 0; i < spans.length; i++) {
// here you get each textContent by spans[i].textContent
}
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.