Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить последний элемент
 
 автор: serjinio   (17.07.2009 в 15:10)   письмо автору
 
 

var c=0; 
function AddItem() {
c++; 
document.getElementById('newDiv').innerHTML+='<div id="p'+c+'" ><input type="text" name="tl[]" /><input type="text" name="tl[]" /></div>';
}

function DelItem(){
if (c!=0){ 
var div=document.getElementById('p'+c); // [object HTMLDivElement]
var l_div = div.lastChild;//[object HTMLParagraphElement]
div.removeChild(l_div);  
c--;
}
return false;
}
//-->
</script>
<div align="right"><span class="add"  onclick="return AddItem();" >Добавить поле </span><span class="add"  onclick="return DelItem();" >Убрать поле </span></div>

<div id="p0" ><input type="text" name="tl[]" /><input name="tl[]" type="text" /></div>

<div id="newDiv"></div>


Поля добавляются а удалить <div id="pN" > не могу ..происходит удаление последнего элемента
<input name="tl[]" type="text" /> почему div.lastChild; не видит именно <div id="pN" >

  Ответить  
 
 автор: PAT   (17.07.2009 в 15:30)   письмо автору
 
   для: serjinio   (17.07.2009 в 15:10)
 

function DelItem ()
{
with (document) if (c) getElementById ('newDiv').removeChild (getElementById ('p' + c--));
}

  Ответить  
 
 автор: serjinio   (17.07.2009 в 16:04)   письмо автору
 
   для: PAT   (17.07.2009 в 15:30)
 

PAT огромное спасибо, все запустилось, если не трудно объясните как работает эта конструкция
with (document) if (c) getElementById ('newDiv')

Заранее спасибо.

  Ответить  
 
 автор: PAT   (17.07.2009 в 16:35)   письмо автору
 
   для: serjinio   (17.07.2009 в 16:04)
 

1
if (c != 0) {} равнозначно if (c) {}

2
объект.свойство1 = значение1; тот-же_объект.свойство2 = значение2; тот-же_объект.свойство3 = значение3;
равнозначно
with (объект) {свойство1 = значение1; свойство2 = значение2; свойство3 = значение3}

3
что в операторе if () {}, что в with () {} - если оператор в фигурных скобках ЕДИНСТВЕННЫЙ,
то фигурные скобки можно опустить.

------------
Соответсвенно, из
function DelItem ()
{
if (c != 0)
   {
   document.getElementById ('newDiv').removeChild (document.getElementById ('p' + c));
   c--;
   }
}

получаем короткое:
function DelItem ()
{
with (document) if (c) getElementById ('newDiv').removeChild (getElementById ('p' + c--));
}

Здесь if () и with () вполне можно поменять местами:
function DelItem ()
{
if (c) with (document) getElementById ('newDiv').removeChild (getElementById ('p' + c--));
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования