2012-07-24 12 views
11

Possible Duplicate:
javascript appendChild doesn't workUncaught Błąd: NOT_FOUND_ERR: DOM Exception 8 na wezwanie appendChild

Błąd występuje w ostatnim wierszu tego fragmentu:

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

tam naprawdę nic innego nie dzieje ... I sprawdzeniu, że specialdiv nie jest pusty lub coś w tym stylu. Czy ktoś może wyjaśnić, dlaczego dostaję ten błąd na tej linii?

+3

'appendChild' spodziewa się elementu DOM ** **, a nie ciąg: https://developer.mozilla.org/en /DOM/Node.appendChild –

Odpowiedz

15

nie przechodzą ciąg, ale element

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

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

Otrzymujesz ten błąd, ponieważ appendChild pobiera elementy DOM, a nie ciągi. Musisz faktycznie utworzyć element DOM przed użyciem appendChild.

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

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

Przepraszam ... Byłem już zaangażowany w pisanie rozwiązania, mimo że teraz jest blisko twojego duplikatu – Kristian

+0

@Kristian: Tak, jestem jak ninja :) –

+1

Nie mogę pomóc ale pomyślcie teraz o piosence ninja z gatunku die antwoord .. hehe – Kristian

Powiązane problemy