Ошибка при отсутствии: NOT_FOUND_ERR: исключение DOM 8 для вызова appendChild

Возможный дубликат:
javascript appendChild не работает

Ошибка в последней строке этого фрагмента:

 var anchor = "<a id=\"hostname\" href=\"" + destination + "\"> "+ imagename + "</a>";
 var specialdiv = document.getElementById("specialdiv");
 console.log("div: " + specialdiv);
 specialdiv.appendChild(anchor);

На самом деле ничего не происходит... Я проверил, что specialdiv не является нулевым или что-то в этом роде. Может кто-нибудь объяснить, почему я получаю эту ошибку на этой строке?

Ответ 1

не передавать строку, а элемент

var link = document.createElement('a');
link.innerHTML = imagename;
link.id = "hostname";
link.href = destination;

var specialdiv = document.getElementById("specialdiv");
specialdiv.appendChild(link);

Ответ 2

Вы получаете эту ошибку, потому что appendChild принимает элементы DOM, а не строки. Перед использованием appendChild необходимо создать элемент DOM.

var anchor = document.createElement('a');
anchor.id = "hostname";
anchor.href = destination;
anchor.innerHTML = imagename;

var specialdiv = document.getElementById("specialdiv");
specialdiv.appendChild(anchor);