Здравствуйте, zaroman, Вы писали:
Z>Здраствуйте! Подскажите,пожалуйста, как можно сделать следующее:
Z>надо написть сценарий на языке JavaScript, который должен обеспечить возможность удаления рисунка из параграфа текста.
Z>Заранее большое спасибо!
naprimer tak:
<p>
<img id="imageToDelete" src="mysrc.gif" onclick="delImg();">
</p>
<script>
function delImg(){
document.getElementById('imageToDelete').outerHTML = '';
}
</script>
Здравствуйте, marx paul, Вы писали:
...
по мне так лучше так:
function deleteObj (obj) {
if (obj != null)
if (obj.parentNode != null)
obj.parentNode.removeNode (obj);
}
Прибивая тег через outerHTML ты не прибибаешь обработчики событий (в частности для IE есть такая особенность), которые могли быть прикручены к удаляему объекту. Да и сам объект ты не удаляешь собсно. В общем, при долгой работе со страницей, обладающей подобными скриптами (то есть многократно вызывается операции outerHTML), IE с ума сходит.
RSDN@Home 1.1.3 stable
Здравствуйте, uzzy, Вы писали:
U>по мне так лучше так:
U>U>function deleteObj (obj) {
U> if (obj != null)
U> if (obj.parentNode != null)
U> obj.parentNode.removeNode (obj);
U>}
U>
А по мне ещё лучше вот так:
function deleteObj( obj) {
if (!obj.parentNode) return false;
obj.parentNode.removeChild( obj);
return true;
}
Это, uzzy, то же самое, что и ты хотел сделать, только почему ты removeNode написал я не понял

Я думаю — просто очепятнулся...
Хотя для любителей removeNode можно поступить и еще хитрее, если в коде уже заюзан removeNode и не хочется править весь код:
// теперь использованные конструкции вида
// document.getElementById( 'Blablabla').removeNode() будут рабтать в браузерах,
// поддерживающих стандарт w3c:
Object.prototype.removeNode = function () {
if (!this.parentNode) return fasle;
this.parentNode.removeChild( this);
return true;
}
Это может пригодиться тому, кто думает не только о пользователях ИЕ.