NextSibling vs nextelementsiing

// nextElementSibling always returns an element. 
// nextSibling can return any kind of node.
// They are the same for your example, but different in other
<p>
  <span id="span-01">Here is span-01</span>
  Some text at the top level
  <span id="span-02">Here is span-02</span>
</p>
document.getElementById('span-01').nextElementSibling //is  span-02
document.getElementById('span-01').nextSibling // is the text node containing 
											  //  "Some text at the top level" 
//note:
//
<div id="div-1">Here is div-1</div> 
<div id="div-2">Here is div-2</div>
var el = document.getElementById('div-1').nextSibling // is #text node
var el2 = document.getElementById('div-2').nextSibling // is #text node
//text nodes are inserted in the DOM where whitespace occurs between tags
//(i.e. after the closing tag of an element and before the opening tag of the next).
//source : https://developer.mozilla.org/en-US/docs/Web/API/Node/nextSibling#example
abdelghanyMh