Вы заменяете innerHTML каждый раз.Как только вы нажмете последний, он просто заменит innerHTML значением последнего элемента.
Обновите ваш код для использования:
document.getElementById("NewOutput").innerHTML +=
+ = важный бит, как он говорит, чтобы добавить к тому, что уже существует.
var getOptions = document.getElementsByClassName("aofi");
var i;
for (i = 0; i < getOptions.length; i++) {
document.getElementById("NewOutput").innerHTML += "<li>" + getOptions[i].innerHTML + "</li>";
}
<div class="allOptions">
<h2 class="aofi">option 1</h2>
</div>
<div class="allOptions">
<h2 class="aofi">option 2</h2>
</div>
<div class="allOptions">
<h2 class="aofi">option 3</h2>
</div>
<div class="allOptions">
<h2 class="aofi">option 4</h2>
</div>
<div class="allOptions">
<h2 class="aofi">option 5</h2>
</div>
<div class="allOptions">
<h2 class="aofi">option 6</h2>
</div>
<div id="NewOutput"></div>