1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>GetElements Enhanced Demonstration</title> 6 <!-- 7 File: D:\cssd.local\E\Student Resources\Website Development I\CodeSamples\GetElementsDemonstration-Enhanced.html 8 Copyright (c) 2022 by Jesse Heines. All rights reserved. May be freely 9 copied or excerpted for educational purposes with credit to the author. 10 updated by JMH on May 9, 2022 at 11:42 AM 11 --> 12 <script> 13 var nExample = 0 ; 14 var NextExample = function() { 15 console.log( "nExample = " + nExample ) 16 switch( nExample ) { 17 case 0 : 18 // example #0 = restore the initial state 19 collectionP[1].innerHTML = "two" ; 20 collectionP[1].style.fontWeight = "normal" ; 21 var elemThree = document.getElementsByTagName( "h2" )[0] ; 22 if ( elemThree != null ) { 23 elemThree.outerHTML = "<p>three</p>" ; 24 } 25 for ( var k = 0 ; k < collectionP.length ; k++ ) { 26 collectionP[k].style.color = "black" ; 27 } 28 break ; 29 30 case 1 : 31 // example #1 = set all elements red 32 for ( var k = 0 ; k < collectionP.length ; k++ ) { 33 collectionP[k].style.color = "red" ; 34 } 35 break ; 36 37 case 2 : 38 // example #2 = set the 2nd element to "four" in blue, bold text 39 collectionP[1].innerHTML = "four" ; 40 collectionP[1].style.color = "blue" ; 41 collectionP[1].style.fontWeight = "bold" ; 42 break ; 43 44 case 3 : 45 // example #3 = change the 3rd element to a Heading 2 46 collectionP[2].outerHTML = "<h2>five</h2>" ; 47 break ; 48 } 49 nExample = ++nExample % 4 ; 50 } 51 </script> 52 53 </head> 54 55 <body> 56 <p>one</p> 57 <p>two</p> 58 <p>three</p> 59 60 <button id="btnNext" type="button" onclick="NextExample()">Next Example</button> 61 62 <script> 63 var collectionP = document.getElementsByTagName("p") ; 64 document.writeln( "<div><br><code>collectionP</code> has type <code>" + 65 typeof collectionP + "</code>.</div>" ) ; 66 document.writeln( "<div><code>collectionP</code> has " + collectionP.length + 67 " elements.</div>" ) ; 68 69 NextExample() ; 70 71 </script> 72 73 <p><br> 74 <hr></p> 75 <p><em>Important Notes:</em> (source: 76 <a href="https://www.w3schools.com/jsref/dom_obj_htmlcollection.asp" 77 target="_blank">https://www.w3schools.com/jsref/dom_obj_htmlcollection.asp</a>)</p> 78 <ul> 79 <li>An <code>HTMLCollection</code> is not an <code>Array</code>!</li> 80 <li>An <code>HTMLCollection</code> may look like an array, but it is not.</li> 81 <li>You can loop through an <code>HTMLCollection</code> and refer to its elements 82 with an index.</li> 83 <li>But you cannot use <code>Array</code> methods like <code>push()</code>, 84 <code>pop()</code>, or <code>join()</code> on an <code>HTMLCollection</code>.</li> 85 </ul> 86 </body> 87 88 </html>