2013-03-08 11 views
7

Lassen Sie uns sagen, dass wir diese Auszeichnung:Wie bekomme ich das nächste Element mit JavaScript?

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf8" /> 
<title>project.js</title> 
<script src="project.js"></script> 
<script> 

</script> 
</head> 

<body> 
<h1>some project &mdash; javascript & html tests</h1> 
<hr /> 

    <p> 
     testing 123 
    </p> 
</body> 
</html> 

Ich weiß, dass es dort .prependChild(), .appendChild(), .innerHTML, usw., Eigenschaften und Methoden, aber was ich suche ist, wie (anhängen) hinzufügen Inhalt nach dem </body> Tag Schließung?

Ich brauche das, ohne jQuery — ist es möglich?

+0

Ich denke, die meisten Browser würden Sie nicht ein ungültiges DOM durch DOM-Funktionen erstellen lassen. ('html' kann nur 1' head' und 1' body' Element und Kommentarknoten enthalten. Sonst nichts.) – Roman

+0

also Bedeutung .. wenn ich etwas 'after body' hinzufügen möchte, dann sollte ich einfach das Elternteil anhängen:' html 'tag? –

+0

@ ZlatanO. Was möchtest du hinzufügen ?! –

Antwort

7

Wenn Sie ‚verwenden id'.you können diese Eigenschaft verwenden:

document.getElementById('id').nextSibling; 
document.getElementById('id').previousSibling; 
+0

das ist IT! Danke! –

+1

Erwähnenswert ist, dass, wenn zwischen den Elementen ein Leerzeichen liegt, 'nextSibling'' undefined' zurückgibt. Sehen Sie dieses Beispiel hier: http://www.w3schools.com/code/tryit.asp?filename=FBONDLQCJA0W –

2

Es wird nicht in einem Browser arbeiten, weil Inhalt nach body nicht "legal" ist. Wie auch immer, dies wäre:

document.body.parentNode.appendChild(document.createTextNode('text after body')); 
document.body.parentNode.appendChild(document.createComment('comment after body')); 

http://jsfiddle.net/yVKk6/ und den Ergebnisrahmen überprüfen.

+0

aus irgendeinem unerklärlichen Grund, den ich gelernt habe, können wir Skripte nach der '' Aussage hinzufügen, aber jetzt habe ich erkannt, dass sie sind entweder angehängt/vorangestellt zu "body" oder "head"! –