Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2012, 08:50
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Создать и удалить элемент DOM
Здравствуйте, здравствуйте, давно не видел не форум не вас уважаемые, к сожалению за это время не на много поумнел в навыках веб-програмирования

Помогите плиз доделать задачку, собственно сам код:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<div>
<label>SLOVO:</label>
<input type="text" id="slovo">
</div>
<BR>
<input type="button" value="Create!" onclick="createError();">
<input type="button" value="Dellete!" onclick="delleteError();">
									
<script>
function createError() {
var next = document.getElementById('slovo');
var label = document.createElement('label');
label.id = 'error_id';
label.className = 'error_class';
label.innerHTML = 'ERROR';

if(next.nextSibling) {
    next.parentNode.insertBefore(label, next.nextSibling);
    } else {
    next.parentNode.appendChild(label);
    }
}
</script>
</body>

</html>


У меня всего 2 вопроса:
1. Как дополнить код чтоб при клике на Create! создавался <label> только один рас, т.е. хоть 100 рас кликнешь все равно создаться только один ERROR а не 100 ?

2. Не могу разобраться с removeChild, может из-за того что ночь уже подошла к концу а я ещё и не ложился) собственно второй вопрос, как сделать чтоб при клике на Dellete! сообщение ERROR которое создалось удалилось ?
Видимо тут removeChild не поможет ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2012, 09:25
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от lamer
1. Как дополнить код чтоб при клике на Create! создавался <label> только один рас, т.е. хоть 100 рас кликнешь все равно создаться только один ERROR а не 100 ?
Флагом

var Flag = true;


function createError() {
var next = document.getElementById('slovo');
var label = document.createElement('label');
label.id = 'error_id';
label.className = 'error_class';
label.innerHTML = 'ERROR';
 
if(Flag){
Flag = false;
if(next.nextSibling) {
    next.parentNode.insertBefore(label, next.nextSibling);
    } else {
    next.parentNode.appendChild(label);
    }
}
}


Сообщение от lamer
2. Не могу разобраться с removeChild, может из-за того что ночь уже подошла к концу а я ещё и не ложился) собственно второй вопрос, как сделать чтоб при клике на Dellete! сообщение ERROR которое создалось удалилось ?
Видимо тут removeChild не поможет ?
function delleteError()
{
if(!Flag){
var a = document.getElementById('error_id'); 
document.body.removeChild(a);
Flag = true;
}
}
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2012, 12:12
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

lamer,
Ruslan_xDD,
delete пишется с одной l


lamer,
Не делайте лишнего, для таких задач обычно заранее строится структура с элементом в которой будет происходить вывод информации, как уже посоветовали.
__________________
.
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2012, 12:25
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от Skipp
Ruslan_xDD,
delete пишется с одной l
Да ладно? Я просто скопировал название фу-ции у lamer.
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2012, 20:33
Профессор
Отправить личное сообщение для lamer Посмотреть профиль Найти все сообщения от lamer
 
Регистрация: 08.02.2012
Сообщений: 216

Сообщение от Ruslan_xDD Посмотреть сообщение
Флагом

var Flag = true;


function createError() {
var next = document.getElementById('slovo');
var label = document.createElement('label');
label.id = 'error_id';
label.className = 'error_class';
label.innerHTML = 'ERROR';
 
if(Flag){
Flag = false;
if(next.nextSibling) {
    next.parentNode.insertBefore(label, next.nextSibling);
    } else {
    next.parentNode.appendChild(label);
    }
}
}




function delleteError()
{
if(!Flag){
var a = document.getElementById('error_id'); 
document.body.removeChild(a);
Flag = true;
}
}
Спасибо за подсказку, но функция delleteError() не работает, так же как и у меня не работала с removeChild

Сообщение от Дзен-трансгуманист Посмотреть сообщение
lamer,
Я бы посоветовал заранее в самой разметке прописать элемент для error, а потом просто вставлять туда описание ошибки или очищать ее.
Не нужно усложнять.
Суть в том что не хочеться добавлять в HTML не чего, потому что на сайте КМС стоит там много чего придеться добавлять, в скрипт через админку вставил и все, поэтому приходиться заморочится =)

Сообщение от Skipp Посмотреть сообщение
lamer,
Ruslan_xDD,
delete пишется с одной l


lamer,
Не делайте лишнего, для таких задач обычно заранее строится структура с элементом в которой будет происходить вывод информации, как уже посоветовали.
Я безграмотный, очень приятно что есть такие ЧЕЛОВЕКИ на форуме которые могут поучить грамоте
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите удалить новый DOM элемент allforweb jQuery 1 26.01.2012 02:32
как удалить элемент в DOM? czp Общие вопросы Javascript 11 17.12.2011 20:55
Новый элемент отсутствует в DOM модели StrSprut jQuery 4 19.09.2011 12:50
Как удалить элемент из дерева DOM dummer jQuery 13 16.01.2011 16:19
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33