How to get div's elements?

Discussion in 'JavaScript' started by Betty_S, Mar 18, 2007.

  1. #1
    Hi,
    How can retrive all of the tags or elemnts within a div
    I have this:
    
    <div name="myDiv">
    <input type="text" value="txt1" name="txt1" />
    <input type="text" value="txt2" name="txt2" />
    <input type="text" value="txt3" name="txt3" />
    </div>
    
    Code (markup):
    And that’s the script that didn't work:
    
    var e=document.myDiv.elements;
     for (var i=0;i<e.length;i++)	{alert(e[i].name);} 
     
    Code (markup):
    What am I doing worng?
     
    Betty_S, Mar 18, 2007 IP
  2. ajsa52

    ajsa52 Well-Known Member

    Messages:
    3,426
    Likes Received:
    125
    Best Answers:
    0
    Trophy Points:
    160
    #2
    This code should work (tested on FireFox):
    
    <html>
    <head>
    <script type="text/javascript">
    
    function getDiv()
    {
      cn = document.getElementById( "myDiv1" ).childNodes;
      for (var i = 0; i < cn.length; i++) 
      {
        // alert( "i='" + i + "', n='" + cn[i].name + "', nt='" + cn[i].nodeType + "', nv='" + cn[i].nodeValue + "'" );  
        if ( cn[i].nodeType==1 )
          alert( cn[i].name );
      }
    }
    
    </script>
    </head>
    <body onLoad="getDiv();">
    <div id="myDiv1" name="myDiv1">
    <input type="text" value="txt1" name="txt1" />
    <input type="text" value="txt2" name="txt2" />
    <input type="text" value="txt3" name="txt3" />
    </div>
    <div id="myDiv2" name="myDiv2">
    <input type="text" value="txt4" name="txt4" />
    <input type="text" value="txt5" name="txt5" />
    <input type="text" value="txt6" name="txt6" />
    </div>
    </body>
    
    </html>
    
    Code (markup):
     
    ajsa52, Mar 18, 2007 IP
  3. SeLfkiLL

    SeLfkiLL Active Member

    Messages:
    85
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    50
    #3
    Try this:

    var nodes = document.getElementsByName("myDiv")[0].childNodes;
    var i;
    
    for(i = 0;i < nodes.length;++i)
        alert(nodes[i].name);
    Code (markup):
    Edit: oh you beat me! :p
     
    SeLfkiLL, Mar 18, 2007 IP