Как найти узел в диапазоне, а затем удалить его? - PullRequest
3 голосов
/ 21 апреля 2010

Я копирую диапазон со страницы и вставляю его обратно в другое место, но это становится проблематичным, когда в него входит фрагмент страницы, который я не хочу копировать.Есть хороший способ удалить узлы из диапазона по идентификатору?Или, если нет, в случае, если на странице есть два узла с одинаковым идентификатором, есть ли способ идентифицировать один поверх другого (т. Е. Сначала указав уникальный родительский идентификатор?)

Примечание:Только JavaScript, пожалуйста - я не могу использовать библиотеку для этого решения.

1 Ответ

2 голосов
/ 21 апреля 2010

Если вы говорите о диапазонах DOM, решение состоит в том, чтобы разделить диапазон вокруг узла, который вы хотите исключить, и получить два диапазона.

// Assuming you have a Range stored in a variable called range and
// a node you want to exclude in a variable called node
var newRange = range.cloneRange();
range.setEndBefore(node);
newRange.setStartAfter(node);

Это не будет работать в IE <= 8, который имеет совершенно другой способ представления диапазонов. </p>

...