querySelectorAll funktioniert nicht

Ich habe eine Anforderung, wo ich den letzten abholen muss.div innerhalb eines Containers und wenden Sie eine Geschäftslogik darauf an. Die Auswahl der letzten.div muss dynamisch sein, da der Benutzer die Option zum Hinzufügen / Entfernen hat.div Elemente.

Anfangs habe ich es mit versuchtquerySelectorAll aber es schien nicht zu funktionieren. Also habe ich beschlossen, es zu änderngetElementsByClassName und überraschenderweise funktionierte es mit der gleichen Logik. Kann mir bitte jemand helfen, warum das so ist?remove_div funktioniert nicht, während der zweite (remove_div_2) tut?

Hinweis: Ich suche keine Lösung für das Problem, da ich bereits mit der zweiten Option fortgefahren bin. Ich möchte nur wissen, warum die Option mitquerySelectorAll funktioniert nicht

Unten ist mein Code:

HTML:

<div id='container'>
    <div id='div1' class='div'>This is Div 1</div>
    <div id='div2' class='div'>This is Div 2</div>
    <div id='div3' class='div'>This is Div 3</div>
</div>
<button type='button' id='append_div'>Append Div</button>
<button type='button' id='remove_div'>Remove Div</button>
<button type='button' id='remove_div_2'>Remove Div 2</button>

JavaScript:

window.onload = function () {
    var elementToStyle = document.querySelectorAll("#container .div");
    elementToStyle[elementToStyle.length - 1].classList.add('red');

    document.getElementById('append_div').onclick = function () {
       var divToInsert = document.createElement('div');
       divToInsert.id = 'new_div';
       divToInsert.className = 'div';
       divToInsert.innerHTML = 'This is an appended div';
       document.getElementById('container').appendChild(divToInsert);
       var elToStyle = document.querySelectorAll("#container .div");
       for (i = 0; i < elToStyle.length; i++)
           elToStyle[i].classList.remove('red');
           elToStyle[elToStyle.length - 1].classList.add('red');
       };

       document.getElementById('remove_div').onclick = function () {
           var elToStyle = document.querySelectorAll("#container .div");
           document.getElementById('container').removeChild(elToStyle[elToStyle.length - 1]);
           elToStyle[elToStyle.length - 1].classList.add('red');
       };

       document.getElementById('remove_div_2').onclick = function () {
           var elToStyle = document.getElementsByClassName('div');
           document.getElementById('container').removeChild(elToStyle[elToStyle.length - 1]);
           elToStyle[elToStyle.length - 1].classList.add('red');
       };
   }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage