Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Как поменять местами LI node |
Автор: fater 27.8.2008, 19:23 | ||||
Всем привет, буду очень рад вашей помощи. Предо мной встала задача замены нодов тега LI Вот такой код HTML:
Необходимо при нажатии на ссылу в ноде, менять местами с элементом стоящим ниже, если в параметре функции указано значение 'down', иначе менять местами с верхним. Заблудился и запарился как это делать. вот мои наработки:
Я решил попробовать методом: - Клонировать нажатый нод (1, сделать 1,2) - Заменить нажатый на тот (1 заменяем на 3), который стоял ниже его, перед клонированием - и удалить клонированый нод В общем... дописывая текст этот уже чую что не таким путем пошел... В голове вертятся мысли, но уже неделю сконцентрирволаться не могу.. На вас очень-очень расчитываю, буду рад любой помощи... За ранее большая благодарность! |
Автор: АндрейМиндубаев 27.8.2008, 21:30 | ||
fater, так вроде бы работает:
|
Автор: fater 28.8.2008, 00:34 | ||||
Привет, АндрейМиндубаев ух ты, работает.. Я благодарю за столь быстрый ответ и помощь мне... Я кстати сегодня почти так же делал по примерам, но у меня не корректно работало. Я вот смотрю все просто, но так до конца и не могу понять зацем там цикл... Если не сложно, можешь хотя бы в кратце описать алгоритм, т.е. что делает какая строчка. чтобы понятно было уже без сомнений. Огромное спасибо! ![]() |
Автор: Hades 28.8.2008, 01:14 | ||
Предложу свой вариант
|
Автор: SelenIT 28.8.2008, 05:37 |
В Gecko-браузерах sibling-ом элемента считается не соседний элемент, а текстовая нода, соответствующая пробелу между тегами. С помощью такого цикла мы в Gecko первым ходом ее пропускаем, а в др. браузерах получаем сразу нужный элемент. Hades, по-моему, 2 замены тут ни к чему совершенно. Вариант АндреяМиндубаева с insertBefore - самое то для такой задачи, манипулируем уже имеющимися элементами, не плодя левых сущностей (клонов и т.п.). |
Автор: fater 28.8.2008, 10:03 | ||
Всем привет. Спасибо за помощь. У меня все это заработало. правда на ФФ. На опере и неИЕбраузере не тестил. Приведу код, уже с изменениями, для движения в верх и низ НОДа. Сделал вызов функции по ID из другой части документа, не нажимая на ссылки. получился вот такой код: (Мне именно это нужно было)
![]() ![]() Спасибо: SelenIT, Hades, АндрейМиндубаев |
Автор: fater 28.8.2008, 21:11 | ||||
Привет, Hades Задача полностью решена. А вот на счет последнего мува сейчас объясню.. С начала нажимается на ссылку в элементе LI Затем, в специальном диве выводятся свойства LI и последовательность этих полей. Порядок берется из БД. Ну и соответственно в этом ДИВе определяется стрелка движения вниз или вверх по ID. Надеюсь объяснил доходчиво. Но все же благодарю за столь активную помощь ![]() |