我有一段HTML代码:
<div id="id0" class="class0">
<span> "1" </span>
<span> "2" </span>
<span> "3" </span>
</div>
问题是如何使用javascript将1、2、3作为列表获取?
我尝试过:document.getElementById和document.getElementsByClassName,但都不起作用。
我有一段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
方法,然后去掉 引号
来获取仅包含 数字列表
。
<!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>
函数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>
map()
来处理children
。
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>
我在这里为您介绍这个过程 -
首先,从文档中获取div- const div = document.getElementById("id0");
,您可以使用其他方法来完成此操作,
然后获取div的所有子元素,您可以通过const spans = div.children;
来实现,现在spans是包含所有span的可迭代HTMLCollection。现在,您可以遍历每个span,并使用正则表达式/其他方式获取其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
}
`
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>
querySelectorAll
返回一个NodeList
。 - ceving