2010-04-21 2 views
3

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

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

+0

Это копирование и вставка выбора пользователя? И вы говорите здесь о диапазонах DOM? –

ответ

2

Если вы говорите о диапазонах 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, который имеет совершенно иной способ представления диапазонов.