如何动态读取div的所有span元素
当创建网页时,一个HTML元素可以包含多个嵌套的HTML元素。在某些情况下,开发人员可能需要读取一个HTML元素中的特定HTML元素。在我们的情况下,我们需要读取div元素的所有span元素,并提取它们的内容。
在本教程中,我们将学习如何使用JavaScript读取div元素的所有span元素的内容,并以格式化的方式将其再次附加到网页上。
语法
用户可以按照以下语法使用JavaScript动态读取div元素的所有span元素:
var spans = div.getElementsByTagName("span");
for (var i = 0; i < spans.length; ++i) {
output.innerHTML += spans[i].innerHTML + "<br>";
}
在上述语法中,我们通过标签名获取到了‘span’元素,并逐个读取所有的span元素。
示例1
在下面的示例中,我们创建了包含‘myDiv’id的div元素。同时,我们添加了5个包含不同内容的span元素。
在JavaScript中,我们通过id访问了div元素。然后,我们通过标签名访问了div元素的子元素,即所有的span元素。接下来,我们使用for循环迭代span元素的数组,并获取每个span元素的内部HTML。
在输出中,我们可以看到span元素的内容。
<html>
<body>
<h2> Reading <i> all the spans of a div element </i> dynamically using JavaScript </h2>
<div id="myDiv">
<span> First </span>
<span> Second </span>
<span> Third </span>
<span> Fourth </span>
<span> Fifth </span>
</div>
<br>
<div id = "output"> </div>
<script>
var div = document.getElementById("myDiv");
var spans = div.getElementsByTagName("span");
var output = document.getElementById("output");
for (var i = 0; i < spans.length; ++i) {
output.innerHTML += spans[i].innerHTML + "<br>";
}
</script>
</html>
示例2
在下面的示例中,我们创建了一个id为’content’的div元素。这个div元素包含多个按任意顺序排列的子元素<p>
, <span>
, 和 <div>
,但我们只提取span元素。
在JavaScript中,我们访问div元素和子span元素。然后,我们只读取span元素的内容并将其内容追加到列表中。
<html>
<body>
<h2> Reading <i> all the spans of a div element </i> dynamically using JavaScript </h2>
<div id = "content">
<p> This is the first paragraph. </p>
<p> This is the second paragraph. </p>
<span> This is the first span. </span>
<div> This is a div element. </div>
<span> This is the second span. </span>
<span> This is the third span. </span>
<h2> This is a h2 element </h2>
<p> This is the third paragraph. </p>
<span> This is the fourth span. </span>
</div>
<br>
<ul id = "output"> </ul>
<script>
var div = document.getElementById("content");
var spans = div.getElementsByTagName("span");
var output = document.getElementById("output");
for (var i = 0; i < spans.length; i++) {
var li = document.createElement("li");
li.innerHTML = spans[i].innerHTML;
output.appendChild(li);
}
</script>
</html>
示例3
在这个例子中,我们在span标签中添加了水果的名称,并在div标签中添加了对水果名称的解释。因此,父div包含span和div元素作为子元素。
在JavaScript中,我们使用children
属性来获取div元素的所有子元素。之后,我们遍历所有的子元素。在for循环中,我们通过tagName
属性来检查当前元素是否为span
元素。如果是,我们读取它的内容并将其添加到列表中。否则,继续迭代。
<html>
<body>
<h3> Reading <i> all the spans of a div element </i> dynamically using JavaScript </h3>
<div id = "fruits">
<span> Apple </span>
<div> Color: red </div>
<span> Orange </span>
<div> Color: orange </div>
<span> Banana </span>
<div> Color: yellow </div>
<span> Watermelon </span>
<div> Color: green </div>
</div>
<h3> Output: </h3>
<ul id = "output"> </ul>
<script>
let fruits = document.getElementById("fruits");
let children = fruits.children;
let output = document.getElementById("output");
for (let i = 0; i < children.length; i++) {
if (children[i].tagName == "SPAN") {
output.innerHTML += "<li>" + children[i].innerHTML + "</li>";
}
}
</script>
</html>
结论
我们学会了使用JavaScript动态地读取div元素中所有元素。在前两个示例中,我们访问所有元素,然后遍历它们。在第三个示例中,我们遍历div元素的所有子元素,并在遍历过程中识别出元素。