2010-08-06 4 views

Répondre

5

Comme vous ne l'avez pas mentionné l'utilisation de javascript bibliothèques (comme jquery, dojo), voici quelque chose javascript pur.

var txt = document.createTextNode(" This text was added to the DIV."); 
var parent = document.getElementById('div'); 
parent.insertBefore(txt, parent.lastChild); 

ou

var link = document.createElement('a'); 
link.setAttribute('href', 'mypage.htm'); 
var parent = document.getElementById('div'); 
parent.insertAfter(link, parent.firstChild); 

Bonne programmation.

+1

Document 'document.getElementById ('# div')' sera nulle, vous avez probablement voulu dire '. getElementById ('div') ' –

+2

Ceci est incorrect. * insertBefore * n'est pas une fonction globale, c'est une méthode sur le prototype * HTMLElement *. La méthode correcte est 'parentElement.insertBefore (newElement, childElement)'. –

+0

Ah, mon mauvais. Merci. – simplyharsh

2

Si vous voulez utiliser quelque chose comme jQuery vous pouvez faire quelque chose comme ceci:

$('#div a').after("Your html element"); 
2

jQuery a une belle, construite en fonction de celle-ci: après(), à http://api.jquery.com/after/

Dans votre cas, vous voudrez probablement un sélecteur comme celui-ci:

$('#div a').after('<p>html element to add</p>'); 

Les exemples de code de la Le lien donné ci-dessus montre aussi comment charger jQuery si cela vous est nouveau.

0

En supposant que vous ajoutez seulement un élément:

document.getElementById("div").insertBefore({Element}, document.getElementById("div").children[2]); 
3

Au lieu de traiter avec les enfants de <div>, comme d'autres réponses, si vous savez que vous voulez toujours insérer après l'élément <a>, lui donner un ID, puis vous pouvez insérer par rapport à ses frères et soeurs:

<div id="div"> 
    <a id="div_link">Link</a> 

    <span>text</span> 
</div> 

et puis insérez votre nouvel élément directement après cet élément:

var el = document.createElement(element_type); // where element_type is the tag name you want to insert 
// ... set element properties as necessary 

var div = document.getElementById('div'); 
var div_link = document.getElementById('div_link'); 
var next_sib = div_link.nextSibling; 

if (next_sib) 
{ 
    // if the div_link has another element following it within the link, insert 
    // before that following element 
    div.insertBefore(el, next_sib); 
} 
else 
{ 
    // otherwise, the link is the last element in your div, 
    // so just append to the end of the div 
    div.appendChild(el); 
} 

Ceci vous permettra de toujours garantir que votre nouvel élément suit le lien.

3
node = document.getElementById('YourID'); 
node.insertAdjacentHTML('afterend', '<div>Sample Div</div>'); 

Options disponibles

beforebegin, afterBegin, beforeend, AfterEnd

+0

Cela a également un très bon support pour les navigateurs. Si vous ne prévoyez pas de l'utiliser sur des IE plus anciens en combinaison avec des tables. http://caniuse.com/#feat=insertadjacenthtml – cptnk