Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > удалить потомка


Автор: studentigor 21.5.2011, 10:21
Всем привет.
В предыдущем посте, не получалось добавить потомка, теперь не пойму почему не поучается удалить его/
вот так,
Код

function checkpoint(i,x,y){
    var e = document.createElement('img');
    e.src = "img/pp.gif";
    e.style.position = 'absolute';
    e.style.top = y+'px';
    e.style.left = x+'px';
    e.style.width = '9px';
    e.style.height = '9px';
    e.onclick = (function(){checkpoint(i,x,y);});
    if(mass[i][1] == 0){
        document.getElementById('d').appendChild(e);
        mass[i][1] = 1;
    }
    else{
        document.getElementById('d').removeChild(e);
        mass[i][1] = 0;
    }
}

потомка добавляет, меняет mass[i][1] = 1;
Но когда удалить делаю то сюда заходит
Код

else{
        document.getElementById('d').removeChild(e);// гдето здесь ошибка, но какая
        mass[i][1] = 0;//это уже не срабатывает
    }


а вот если далаю так(но так не катит).
Код

function checkpoint(i,x,y){
    var e = document.createElement('img');
    e.src = "img/pp.gif";
    e.style.position = 'absolute';
    e.style.top = y+'px';
    e.style.left = x+'px';
    e.style.width = '9px';
    e.style.height = '9px';
    e.onclick = (function(){checkpoint(i,x,y);});
        document.getElementById('d').appendChild(e);
        mass[i][1] = 1;
        document.getElementById('d').removeChild(e);
    
}

тогда потомок добавляется, mass[i][1] = 1; , и потом потомок удаляется.
Почему не получается сделать так как в первом случае - непойму.

Автор: нуп 21.5.2011, 10:36
В removeChild надо передавать ссылку на объект который надо удалить. А вы что передаете? Только что созданный объект, который даже не добавился в дом? 

Автор: studentigor 21.5.2011, 10:40
Извените меня,
А какая у меня будет ссылка.

Автор: нуп 21.5.2011, 10:48
Судя по вашему коду, у вас в массиве где-то должен быть или id который надо удалить, либо сама ссылка на объект  smile 

Автор: studentigor 21.5.2011, 10:49
все, извените, затупил.
appendChild(e) и возвращает же ссылку на объект

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