Вы можете использовать абсолютный путь: используйте shadowRoot
, чтобы получить содержимое Shadow DOM.
document.querySelector( 'div#outer' ).shadowRoot.querySelector( 'div#inner' )
Или относительный путь: используйте getRootNode()
, чтобы получить корень Shadow DOM
event.target.getRootNode().querySelector( 'div#inner' )
Пример:
outer.attachShadow( { mode: 'open' } )
.innerHTML = `
<div id=inner></div>
<button>clicked</button>
`
outer.shadowRoot.querySelector( 'button' ).onclick = ev =>
ev.target.getRootNode().querySelector( 'div#inner' ).innerHTML = 'clicked'
<div id=outer></div>