Давайте предположим, что у меня есть некоторые HTML вроде этого:Cant получить контейнер выделенного текста (jsfiddle имеется)
<div id='fooBar' contenteditable='true'>Hello <span class="test">World</span></div>
Javascript Код:
var fooBar = document.getElementById('fooBar');
fooBar.addEventListener('click', function() {
console.log(window.getSelection().getRangeAt(0).commonAncestorContainer)
});
Вопрос: Почему обыкновение это получить фактический контейнер названный тест? Я не могу понять, почему это не работает. Я даже пробовал его с помощью selection.anchorNode.parentElement. Ничего не работает. Теперь, глядя на внутреннюю архитектуру объекта, который я получаю из window.getSelection(), тогда я не вижу элемент span, указанный как свойство. Что я делаю не так?
https://jsfiddle.net/w7bfmLqd/1/
Это поможет вам: http://stackoverflow.com/questions/6897187/javascript- get-id-of-commonancestorcontainer – Mojtaba
he Range.commonAncestorContainer свойство только для чтения возвращает самое глубокое - или дальше всего вниз дерево документа - узел, который содержит обе граничные точки диапазона. – vaso123