Ответ 1
Первый будет удалять любые элементы HTML, которые могут находиться внутри вашего целевого элемента. Второй будет работать, только если первый ребенок представляет собой текст node (распространенная ошибка заключается в попытке использовать его на пустом элементе).
Второй вариант "более правильный" (innerHTML
- действительно яркий ярлык на основе haxy), но первый, безусловно, более надежный. Тем не менее, он уязвим для инъекций XSS.
Чтобы быть полностью правильным, вы бы сделали следующее:
var abc = document.getElementById('abc');
while(abc.firstChild) abc.removeChild(abc.firstChild);
abc.appendChild(document.createTextNode("good morning"));