Определить имя узла HTML по заданному объекту выбора javascript - PullRequest
0 голосов
/ 06 августа 2011

Как я могу определить узел (с каким тегом связан этот innerHTML), который связан с данным объектом выбора javascript? Я использую window.getSelection () и хотел бы знать, в каком классе div / span находится выбор.

Спасибо!

1 Ответ

1 голос
/ 06 августа 2011

Если вам нужен самый глубокий элемент, содержащий всю выделенную область, самый простой способ - получить объект Range из выделенной области и использовать его свойство commonAncestorContainer.

jsFiddle: http://jsfiddle.net/5LvEG/1/

Код:

function getSelectionContainerElementId() {
    var sel = window.getSelection();
    if (sel.rangeCount > 0) {
        var range = sel.getRangeAt(0);
        var container = range.commonAncestorContainer;

        // container could be a text node, so use its parent if so
        if (container.nodeType == 3) {
            container = container.parentNode;
        }
        return container.id;
    }
    return null;
}

alert(getSelectionContainerElementId());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...