webForumDet fria alternativet

appendChild bara i XML

JavaScript

5 svar · 521 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Hej!

Jag lyckas inte med appendChild. Låt säga att man har följande html:

<div id="maindiv">
<p>text...</p>
<p>text igen...</p>
</div>

Och sedan skulle jag vilja lägga till en ett p-element med appendChild, hur gör jag då? Just nu använder jag innerHTML men jag skulle hellre vilja köra med appendChild om det nu går, jag lyckas bara hitta tutor som gör det med inladdade xml-filer

// Hjälp uppskattas!

Medlem sedan feb. 20011 198 inlägg
#2

Såhär kanske?

<script language="javascript">
var div = document.getElementById("maindiv");
div.appendChild(createParagraph("någon text"));

function createParagraph(in_text)
{
var new_p=document.createElement("p");
new_p.innerText = in_text;
return new_p;
}
</script>
Medlem sedan apr. 2006244 inlägg
#3

yohpops skrev:

Såhär kanske?

<script language="javascript">
var div = document.getElementById("maindiv");
div.appendChild(createParagraph("någon text"));

function createParagraph(in_text)
{
var new_p=document.createElement("p");
new_p.innerText = in_text;
return new_p;
}
</script>

Det funkade när jag ändrade innerText till innerHTML , tack så mycket för hjälpen :birp

Medlem sedan apr. 2006244 inlägg
#4

Jag kom på att jag skulle behöva få elmentet att hamna före alla tidigare element, testade med getElementById("maindiv").childNodes[0].appendChild... men det gick givetvis inte...

Medlem sedan juni 20008 205 inlägg
#5

Gör så här:

var newElement = document.createElement(...);
var mainDiv = document.getElementById("maindiv");
mainDiv.insertBefore(newElement, mainDiv.firstChild);

Ett hett tips är att bookmarka exempelvis http://developer.mozilla.org/en/docs/DOM:element

Medlem sedan apr. 2006244 inlägg
#6

Tack, nu funkar det utmärkt!

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)