I'm trying to select next 3 items(nextElementSiblings) for every click on 'next' button. Items length is 14. Its working fine till item 12. After item 12 its checking for next 3 items but there were only 2 left(thirteen 13, thirteen 14) in loop. So its unable to select last 2 items. How can I change the condition here when items left less than 3 at the end of the loop. And disable the onclick function on 'next' button as it reached till end. And enable it after clicking on 'prev' button.
var next = document.getElementById("next"),
list = document.getElementById("list");
var li = list.getElementsByTagName("DIV");
for (var i = 0; i < li.length; i++) {
li[i].style.display = "0px solid transparent";
}
for (var i = 0; i < 3; i++) {
li[i].style.border = "1px solid red";
}
var nextfun = (function(){
var nextitems = 4;
var prevItems = 1;
return function(){
nextitems = nextitems + 2;
prevItems = nextitems - 3;
for (var i = 0; i < nextitems; i++) {
li[i].style.border = "1px solid red";
if(nextitems >= li.length){
li[i].style.border = "1px solid red";
//nextitems = 2;
break;
//this.pointerEvents = "none";
}
}
for (var i = 0; i < prevItems; i++) {
li[i].style.border = "0px solid transparent";
if(prevItems <= li.length){
prevItems = nextitems - 3;
li[i].style.border = "1px solid transparent";
}
}
return ++nextitems;
//return --prevItems;
}
})();
<div id="list">
<div> one 1</div>
<div> two 2</div>
<div> three 3</div>
<div> four 4</div>
<div> five 5</div>
<div> six 6</div>
<div> seven 7</div>
<div> eight 8</div>
<div> nine 9 </div>
<div> ten 10</div>
<div> eleven 11</div>
<div> twelve 12</div>
<div> thirteen 13</div>
<div> fourteen 14</div>
</div>
<button id="prev" onclick="prevfun()">PREVIOUS 3</button>
<button id="next" onclick="nextfun()">NEXT 3</button>