Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Выделить текст средствами JS в строке

Ржач Ученик (29), на голосовании 1 год назад
как программно выделить текст написанный в div имеющий атрибут contenteditable. Первую строку выделяю без проблем. а вот со следующими сообрзить не могу как?

вот код
 let range = new Range(); 
const enterNotes = document.querySelector('.enterNote');
range.setStart(enterNotes.firstChild, 13);
range.setEnd(enterNotes.firstChild, 33);

document.getSelection().removeAllRanges();
document.getSelection().addRange(range);
Голосование за лучший ответ
EVK IT Сервис К Мыслитель (5236) 1 год назад
 var range = document.createRange(); 
var root_node = document.querySelector('.enterNote');
range.setStart(root_node.childNodes[0], 0);
range.setEnd(root_node.childNodes[1], 0);
range.selectNodeContents(root_node);
let sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
В твоем примере нужно смотреть исходя и нод которые у тебя есть. Судя по всему у тебя больше одной ноды. А ты используешь только первую (firstChild)
Яков Гото Искусственный Интеллект (320906) 1 год назад
Задача какая-то странная.
 const range = new Range();  
const enterNotes = document.querySelector('.enterNote');

(onrange = () => {
if (enterNotes.innerText.length > 33) {
range.setStart(enterNotes.firstChild, 13);
range.setEnd(enterNotes.firstChild, 33);
document.getSelection().removeAllRanges();
document.getSelection().addRange(range);
}
})()

enterNotes.addEventListener('blur', onrange);
Похожие вопросы