function addList(value) {
      const list = document.getElementsByClassName("list-div ")
      var div = document.createElement("div");
      div.classList.add("list-new");
       div.innerHTML = `<div class="h5-div" >
          <h5 class="list" >${value}</h5>
          </div>
          <div class="actions" >
          <span class="action-span" ><button 
                  class="action-btn">done</button></span>
          <span class="action-span" ><button 
                 class="action-btn">edit</button></span>
          <span class="action-span" ><button 
                   class="action-btn">delete</button></span>
          </div>`;
      list.appendChild(div);
}
            Asked
            
        
        
            Active
            
        
            Viewed 532 times
        
    -1
            
            
         
    
    
        Pointy
        
- 405,095
- 59
- 585
- 614
- 
                    `getElementsByClassName` would return an array. maybe list[0] will work – Krishna Prashatt Apr 15 '19 at 12:54
- 
                    The `list` is an HTML Collection instance and it doesn't have an `appendChild` method. You can't add to the DOM via that interface, to my knowledge; I'm not sure how it could make sense. You'll need to determine where in the DOM you want your new `` to go, and then use DOM node APIs to add it (like `appendChild`).– Pointy Apr 15 '19 at 12:58
3 Answers
0
            
            
        Preferibly when you are attaching elements to a list with a function, the best option is provide an id instead of a class. If you want to use the class, you have to use [0] since the "const list" is an array. You can't append a child to an array, you need to provide the exact element.
 
    
    
        Victor Sanchez
        
- 35
- 2
- 8
0
            
            
        Use list[0] since getElementsByClassName returns a HTMLCollection (array-like object):
list[0].appendChild(div);
 
    
    
        Jack Bashford
        
- 43,180
- 11
- 50
- 79
0
            
            
        getElementsByClassName returns a HTML Collection. You might need to use list[0] depending on what you wish to do.
list[0].appendChild(div);
Also, you can consider using document.getElementByID('uniqueId') if you wish to get one unique list in your dom. You need to create a list as:
<ul id="uniqueId">
</ul>
 
    
    
        Abhas Tandon
        
- 1,859
- 16
- 26
