2014-11-15 3 views
0

У меня есть следующие строки сценария, чтобы получить выбранную область документа.Проверить выбор внутри или вне класса

sel = window.getSelection(); 
    console.log(sel); 

У меня есть результаты в консоли, как на изображении ниже.

enter image description here

Мой вопрос,

Можно ли проверить выбранный текст внутри или вне элемента с определенным классом/ид?

+0

Я не после того, что вы имеете в виду " внутри или снаружи класса » – Retsam

+0

@Retsam Чтобы проверить, что он находится внутри div с классом/id – Shin

+0

Если я выберу слово с моей веб-страницы, мне нужно проверить выбор внутри или вне элемента – Shin

ответ

1

Вы можете использовать anchorNode (узел, в котором начинается выбор), и focusNode (узел, в котором заканчивается выбор), чтобы попытаться определить, находится ли выбор в нужном элементе.

Предполагая, что элемент вы заинтересованы является прямым предком текста выбран, вы можете сделать:

var sel = document.getSelection(); 
var startsInTarget = sel.anchorNode.parentElement.classList.contains("target"); 
var endsInTarget = sel.focusNode.parentElement.classList.contains("target"); 
if(startsInTarget && endsInTarget) { 
    //selection is within an element with class "target" 
} 

Вот jsfiddle демонстрирует эту идею

Смежные вопросы