JSFiddle - React, Tailwind, and code Playground
by kentaromiura
HTML
<div id="source">
<ul>
<li>foo</li>
<li>foo</li>
<li id="a">foo</li>
</ul>
</div>
<div id="target">
<ul>
<li>foo</li>
<li>foo</li>
<li>found</li>
</ul>
</div>
JavaScript
function find(me, from, here){
var path = []
var current = me
while(current.parentNode && current !== from){
var parent = current.parentNode
path.push([].indexOf.call(parent.childNodes, current))
current = current.parentNode
}
var result = here
while(path.length){
result = result.childNodes[path.pop()]
}
return result
}
alert(find(document.getElementById('a'), document.getElementById('source'), document.getElementById('target')).innerHTML)