如何动态读取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元素。之后,我们通过标签名称访问所有span元素,它们是div元素的子元素。接下来,我们使用for循环迭代span元素数组,并获取每个span元素的innerHTML。
在输出中,我们可以看到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元素的所有span元素。在前两个示例中,我们访问所有span元素,然后遍历它们。在第三个示例中,我们遍历div元素的所有子元素,并在迭代时识别span元素。