Вопрос здесь>> Если строки рядом, то не вижу смысл клонировать, нужно просто передвинуть вторую перед первой: >> >> 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. Только учтите, что функцию эту я не проверял - хотя теоретически она должна работать ;-) |