Логин:

Пароль:

Форумы
Общие вопросы
Document Object Model
Обсуждаем конференцию
Web Usability (test)

Document Object Model

Вопрос здесь

>> Если строки рядом, то не вижу смысл клонировать, нужно просто передвинуть вторую перед первой:
>>
>> function ExchangeRows(Row1,Row2){
>> Row1.parentNode.insertBefore(Row2, Row1);
>> }
>
> Я Бы Добавил Еще, Что Это Будет Работать, Если Точно Известно, Что Первая Изначально Стоит Раньше Второй.

ну, если очень нужно менять местами абсолютно случайных нодов можно написать функцию типа:

function switchNodes(firstNode, secondNode) {
.if (firstNode.nodeType == secondNode.nodeType) {

..// запоминаем, где был второй нод
..var secondsNext, secondsParent;
..if (secondNode.nextSibling) {
...secondsNext = secondNode.nextSibling;
..} else {
...secondsParent = secondNode.parentNode;
..}

..// ставим второй перед первым
..firstNode.parentNode.insertBefore(secondNode, firstNode);
..
..// ставим первый на месте второго
..if (secondsNext) secondsNext.parentNode.insertBefore(firstNode, secondsNext);
...else secondsParent.appendChild(firstNode);
..
.} // else - менять местами ноды разных видов - плохо!
}


PS. Только учтите, что функцию эту я не проверял - хотя теоретически она должна работать ;-)
СообщениеАвторДата
slash26.03.2002 19:19
111106.05.2002 09:44
24.10.2006 19:06
+05.09.2006 00:54
slash26.03.2002 19:22
Maniac27.03.2002 00:05
Leechy27.03.2002 01:42
slash27.03.2002 19:41
Maniac27.03.2002 12:18
12.03.2007 08:27
Maniac27.03.2002 12:05
Leechy27.03.2002 20:02
slash03.04.2002 17:52