Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Добавление элемента с ХТМЛ на страницу и удаление


Автор: Elfet 21.10.2005, 19:19
Простите, наверное где то уже есть - но не нашёл smile

Я вот так вставляю в список элементы:
Код

    insertO = document.getElementById("outputList");
    oLi = document.createElement('li');
    oSpan = document.createElement('span');
    oSpan.setAttribute('className','name'); //for IE's sake
    oSpan.setAttribute('class','name');
    oName = document.createTextNode(liName+': ');
    oText = document.createTextNode(liText);
    oSpan.appendChild(oName);
    oLi.appendChild(oSpan);
    oLi.appendChild(oText);
    insertO.insertBefore(oLi, insertO.firstChild);


Но вот тут вот HTML не проходит: createTextNode smile

И как потом эти элементы удалить. И как удалить какой-либо конкретный? smile

Автор: diam 23.10.2005, 01:04
createTextNode работает нормально. Всё проходит (правда, у тебя нет liName и liText, я их создал).
Удалить элементы - смотря какие. Можно DOM'овским методом removeChild().

Автор: Sardar 23.10.2005, 02:27
Цитата(Elfet @ 21.10.2005, 18:19)
oSpan.setAttribute('className','name'); //for IE's sake
    oSpan.setAttribute('class','name');

Замени на oSpan.className='name'; ето будет более логично и верно.

Если ты скрипт откуда то вырезал, то как уже сказал diam ты забыл о liName и liText, остальное глючить не может.

Автор: Elfet 23.10.2005, 09:40
Я скрипт по книжке делал smile smile Тама делали интегратор с базой данных, а вот может я неправильно части кода совместил? А вот ХТМЛ у меня по прежднему не работает smile oText = document.createTextNode("<img src=''>"); Просто выводит текст

Автор: diam 23.10.2005, 09:46
Цитата(Elfet @ 23.10.2005, 09:40)
oText = document.createTextNode("<img src=''>"); Просто выводит текст

Почему у тебя три двойных кавычки? smile
Метод createTextNode("text") создаёт ноду, содержащую текст. Поэтому что он ещё должен выводить, кроме текста.

Elfet, конкретизируй задачу. Что нужно?

Автор: Elfet 23.10.2005, 10:47
Это у меня тама две одинарные ;)

Вообщем нужно добавление элементов с хтмл и их удаление (выборочное и полное) smile

Автор: Sardar 23.10.2005, 13:10
Цитата(Elfet @ 23.10.2005, 09:47)
Вообщем нужно добавление элементов с хтмл и их удаление (выборочное и полное)

innerHTML + логика тебе в помощь. Не обязательно лезть в мануалы, просто нужно понимать что createTextNode создаст текстовую ноду, содержащую текст и отображающую текст! Я даже не знаю как нужно назвать метод что бы ты не догадался положить туда разметку... smile

Автор: Elfet 23.10.2005, 14:56
О! Спасибо! Заработало!
Код

function insertNewContent(liName,liText) {
    insertO = document.getElementById("outputList");
    oDiv = document.createElement('div');
    oDiv.className='name';
    oDiv.Name='div';
    oDiv.innerHTML=liName+': '+liText;
    insertO.insertBefore(oDiv, insertO.firstChild);
}

Автор: Sardar 23.10.2005, 18:55
oDiv.Name='div'; - это зачем?

Цитата(Elfet @ 23.10.2005, 13:56)
document.getElementById("outputList");

Смотри что бы у тебя этот outputList списком не оказался (ul, ol, dl), иначе глупо получиться, в список слой положить. Браузер (особенно ИЕ в quirksmode) конечно попытаеться понять что ты хотел и положит новый слой в предидущий li или создаст новый, но зачем тебе такой геморрой?

Прежде чем сгенерить вёрстку, всегда напиши её текстом:
Код
ul
 li
  div
 li
  div

Теперь посмотри какая у тебя разметка генериться smile

Автор: Elfet 24.10.2005, 12:08
Цитата(Sardar @ 23.10.2005, 19:55)
oDiv.Name='div'; - это зачем?


oDiv.Name='div'+id; что бы потом работать с этим элементом? А как их тогда удалить все? Или какой-то отдельный?

Автор: Sardar 24.10.2005, 13:35
Цитата(Elfet @ 24.10.2005, 11:08)
что бы потом работать с этим элементом?

Это ты просто так сказал, или ты действительно "работаешь" с элементом через левое поле Name, которое естественно только для тебя, т.к. JS ещё и регистрозависимый.

Ладно, вижу проблем больше нет, искать твои ошибки заранее не буду.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)