Создание элемента с заменой
Имеется следующий код страницы:
<ul> <li class="add">Строка 1</li> <li id="element1" class="add">Строка 2</li> <li class="add">Строка 3</li> <li class="add">Строка 4</li> <li class="add">Строка 5</li> </ul> Далее у меня в JS скрипте имеется переменная которая содержит HTML одного пункта: var a = '<li id="element1" class="del">Строка 2 измененная</li>'; К странице подключена библиотека MooTools. Необходимо заменить вторую строку в списке (как видно у них id одинаковые, изменяется только class и контент <li />, только контент там будет посложнее, с кучей вложенных тегов). Я представляю следующее решение вопроса: 1) создать элемент(объект) на базе HTML кода, как то так: var newLi=createByHTML('код')вот только проблема в том что не нашел способа как это сделать. 2) заменить старую строку на созданый элемент. Тоже не знаю как это сделать. Еще конечно можно регуляркой это сделать. Подскажите как решить данную задачку. |
А почему не переназначить класс и не поменять содержимое внутри?
|
Да, это было бы логично, но много кода лопатить придется на РНР, т.к. много скриптов используют именно такой вариант передачи.
А функции типа предложенной мною createByHTML не существует? |
Цитата:
поподробнее "создать элемент" - значит записать в переменную чтото с типом HTMLElement ( ну,например HTMLDivElement ) если я опять неверно понял,то создание новых элементов делается через метод... var t = document.createElement("li"); .... t.className = "add"; ...... document.body.appendChild( t ); |
тогда
1. Переиначиваем id старого элемента, скажем на element1bad 2. var el1 = new Element ( 'div' , { 'id' : 'element1'});//создаем элемент el1.injectTop($('element1bad')); //вставляем, код может отличаться в зависимости от версии mootools 3. Удаляем element1bad |
innerHTML отменили для смены содержимого?
<head> </head> <body> <ul> <li class="add">Строка 1</li> <li id="element1" class="add">Строка 2</li> <li class="add">Строка 3</li> <li class="add">Строка 4</li> <li class="add">Строка 5</li> </ul> <script> document.getElementById("element1").innerHTML="STROKA"; </script> </body> о смене класса вообще молчу... в первом ответе на тему был дан ответ.для чего велосипед городить?и причём переделка кода на рнр? |
Serg_pnz,
Спасибо, хорошая идея! |
а есть ещё outerHTML и outerText какие избавляют от гемора с созданием и удалением элементов
http://js-help.net/text/objeknaya_mo.../innertext.php |
Часовой пояс GMT +3, время: 21:26. |