Because navigation such as nextElementSibling has become popular as it avoids unwanted nodes, parentElement is a slightly updated version of parentNode that does basically the same thing with a bit more protection.
Either works, but as elements are what we are dealing with, parentElement is the preferred way to go.
One of the main benefits of parentElement is when you are using a while loop to walk up each parent:
while (el.parentElement) {
el = el.parentElement;
// then check something
}
That code appropriately stops going up the parents when the HTML element is reached.
With parentNode, that goes further up from the HTML element to the document, which can cause issues, so you need further safety with parentNode.
while (el.parentNode.nodeType === 1) {
el = el.parentNode;
// then check something
}
Using parentElement gives more safety in that regard, where when going up from html it doesn’t give the document but gives null instead. That kind of safety with parentElement results in easier to understand code.