Как вставить узел в конце диапазона? - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу вставить узел в конец диапазона выбора, но в соответствии с документами API здесь https://developer.mozilla.org/en-US/docs/Web/API/Range Range.insertNode () вставляет узел в начало диапазона, и есть нет другого метода для вставки в конце, есть ли способ добавить узел в конце объекта диапазона?

1 Ответ

0 голосов
/ 12 февраля 2020

Просто сохраните текущую позицию диапазона, установите начало в конец текущего диапазона, вставьте свой узел, затем установите диапазон обратно.

// assuming..
const myRange = document.createRange();
const startNode = document.getElementById('startNode');
const endNode = document.getElementById('endNode');
const nodeToInsert = document.getElementById('insertNode');

myRange.setStart(startNode, 0);
myRange.setEnd(endNode, 0);

// then..
const insertAtEnd = (myRange, nodeToInsert) => {

    const oldStart = myRange.startContainer;

    const oldEnd = myRange.endContainer;

    myRange.setStartAfter(oldStart);

    myRange.insertNode(nodeToInsert);

    myRange.setStart(oldStart, 0);
    myRange.setEnd(oldEnd, 0); 


};

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