Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.04.2011, 14:48
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Создание элемента с заменой
Имеется следующий код страницы:
<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) заменить старую строку на созданый элемент. Тоже не знаю как это сделать.

Еще конечно можно регуляркой это сделать.
Подскажите как решить данную задачку.
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2011, 15:00
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

А почему не переназначить класс и не поменять содержимое внутри?
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2011, 16:47
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Да, это было бы логично, но много кода лопатить придется на РНР, т.к. много скриптов используют именно такой вариант передачи.
А функции типа предложенной мною createByHTML не существует?
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2011, 17:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Цитата:
создать элемент(объект) на базе HTML кода, как то так:
var newLi=createByHTML('код')
что????

поподробнее

"создать элемент" - значит записать в переменную чтото с типом HTMLElement ( ну,например HTMLDivElement )

если я опять неверно понял,то

создание новых элементов делается через метод...

var t = document.createElement("li");
....
t.className = "add";
......
document.body.appendChild( t );
Ответить с цитированием
  #5 (permalink)  
Старый 29.04.2011, 18:06
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

тогда
1. Переиначиваем id старого элемента, скажем на element1bad
2.
var el1 = new Element ( 'div' , { 'id' : 'element1'});//создаем элемент
el1.injectTop($('element1bad')); //вставляем, код может отличаться в зависимости от версии mootools

3. Удаляем element1bad
Ответить с цитированием
  #6 (permalink)  
Старый 29.04.2011, 19:01
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

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>


о смене класса вообще молчу...
в первом ответе на тему был дан ответ.для чего велосипед городить?и причём переделка кода на рнр?

Последний раз редактировалось dmitriymar, 29.04.2011 в 19:05.
Ответить с цитированием
  #7 (permalink)  
Старый 01.05.2011, 09:23
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Serg_pnz,
Спасибо, хорошая идея!
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием
  #8 (permalink)  
Старый 01.05.2011, 09:53
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

а есть ещё outerHTML и outerText какие избавляют от гемора с созданием и удалением элементов
http://js-help.net/text/objeknaya_mo.../innertext.php
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка HTML элемента на существование MCTrane Общие вопросы Javascript 10 26.02.2014 20:51
Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента Lockpickup AJAX и COMET 17 25.04.2011 17:58
помогите "уловить" момент появления элемента Bebarr Swallow Events/DOM/Window 4 18.03.2011 08:16
Создание собственных свойств элемента cooli0 Events/DOM/Window 1 03.03.2010 15:35
Динамическое создание елемента из динамически созданного элемента. Anguis Элементы интерфейса 10 16.12.2009 17:26