JavaScript / DOM - kan ikke printe ud?

Her kan du få hjælp og stille spørgsmål til JavaScript!
Besvar
Josefine
Geni
Geni
Indlæg: 308
Tilmeldt: 9. dec 2011, 16:46

JavaScript / DOM - kan ikke printe ud?

Indlæg af Josefine » 31. jul 2013, 14:12

Hej igen :)

Jeg prøver at få en pop-op besked med navnet William op ved at navigere rundt i DOM'en.. men det ser ikke ud til, at det virker.
Nogen anelse om, hvorfor det ikke gør?

Her er mine koder:

Kode: Vælg alt

<!DOCTYPE>
<html>
<head>
	<title>Testing JavaScript</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<META name="keywords" content="Blabla" />
	<META name="description" content="Blabla" />
	<script src='DOM.js'></script>
</head>

<body>
<ul id="baldwins">

	<li>Alec</li>
	
	<li>Daniel</li>

	<li>William</li>

	<li>Stephen</li>
</ul>
</body>

</html>

Kode: Vælg alt

var hej = "hej";
document.write(hej);
//test, virker fint

var baldwins = document.getElementById("baldwins");
var william = baldwins.childNodes[2];

alert(william);

//virker ikke

Josefine
Geni
Geni
Indlæg: 308
Tilmeldt: 9. dec 2011, 16:46

Re: JavaScript / DOM - kan ikke printe ud?

Indlæg af Josefine » 31. jul 2013, 23:26

Hmm, fandt ud af, at det hjalp at sætte

Kode: Vælg alt

<script>
var baldwins = document.getElementById("baldwins");
var william = baldwins.childNodes[2];
alert(william);
</script>
ind i stedet for, og nu kommer der også en pop-op (og jeg kan ændre stylesheetet på min listes tekst osv., så det virker helt klart, hvorimod det ikke virkede i min til-linkede javascript-fil, selvom den godt kunne printe "hej" ud... nogen anelse om, hvorfor?? Er det, fordi det foregår i head?). Men den printer ikke navnet William ud... Den skriver bare [object Text]...

Nogen, der kan finde fejlen? :?

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg: 709
Tilmeldt: 21. jun 2012, 23:40
Kontakt:

Re: JavaScript / DOM - kan ikke printe ud?

Indlæg af scootergrisen » 3. aug 2013, 06:09

Når du køre Javascript kode i headdelen med det samme så findes <ul id="baldwins"> ikke endnu fordi det står længere nede.

Så du kan enten flytte Javascript koden længere ned på siden efter </ul> eller du kan lave din Javascript koden om så den først udføres når siden er færdig med at blive indlæst.

Så kan du sætte din Javascript kode ind i en funktion også først kalde den når load event er udløst.

function noget() {

// Din kode

}

window.addEventListener('load', noget, false);

Josefine
Geni
Geni
Indlæg: 308
Tilmeldt: 9. dec 2011, 16:46

Re: JavaScript / DOM - kan ikke printe ud?

Indlæg af Josefine » 3. aug 2013, 10:56

Arh... tak, jeg ændrede det bare til dette her:

Kode: Vælg alt

<!DOCTYPE>
<html>

<head>

	<title>Testing JavaScript</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<META name="keywords" content="Den Røde Ballon" />
	<META name="description" content="Den Røde Ballon" />
	
</head>

<body>




	
<ul id="baldwins">

	<li>Alec</li>
	
	<li>Daniel</li>

	<li>William</li>

	<li>Stephen</li>


</ul>
	
	
	<p id="p2">Change color</p>
	

<script type="text/javascript" src="DOM.js"></script>


</body>


</html>

Fandt ud af, at JavaScript kode skal komme bagefter det, det skal "linkes sammen med" ... altså til sidst... (ikke som CSS). Så lærte jeg også det :P

Tak skal du have :D

Besvar