What is the perfect way to find all nextSiblings and previousSiblings in JavaScript. I tried few ways but not getting accurate solution. If any element is selected, I need t
const getSiblings = (elm, withTextNodes) => {
if( !elm || !elm.parentNode ) return
let siblings = [...elm.parentNode[withTextNodes ? 'childNodes' : 'children']],
idx = siblings.indexOf(elm);
siblings.previous = siblings.slice(0, idx)
siblings.next = siblings.slice(idx + 1)
return siblings
}
// Usage example:
const testElm = document.querySelector('em');
const testElmSiblings = getSiblings(testElm);
console.log(
testElmSiblings.previous,
testElmSiblings.next,
testElmSiblings
)
text node 1
text node 2