2009-07-22 5 views
0

J'essaie d'ajouter à tous <object> sur une page un extrait de html. Je comprends que je peux accéder aux éléments par nom de balise et que je peux changer l'élément, mais est-ce que je peux l'ajouter à la place?Vous essayez d'ajouter un élément à l'aide de js?

De plus, je veux l'ajouter au contenu de chaque étiquette, pas à la fin du document. Laquelle de ces méthodes fonctionnera?

Répondre

5

En supposant qu'aucune bibliothèque ...

var elementToAppend = document.createElement(tagName); // Your tag name here 

// Set attributes and properties on elementToAppend here with 
// elementToAppend.attribute = value (eg elementToAppend.id = "some_id") 
// You can then append child text and elements with DOM methods 
// (createElement or createTextNode with appendChild) 
// or with innerHTML (elementToAppend.innerHTML = "some html string") 

var objects = document.getElementsByTagName('object'); 
for(var i = 0; i < objects.length; i++) { 
    elementToAppend = elementToAppend.cloneNode(true); 
    objects[i].appendChild(elementToAppend); 
} 

En utilisant innerHTML ou outerHTML que d'autres réponses ont suggéré causera probablement des problèmes pour tout ce que vous avez intégré avec <object>.

+0

alors quand je définirai les attributs, comment définirais-je ce que je veux ajouter? Comme élémentToAppend = ? Merci! – patricksweeney

+0

+1 pour un exemple montrant comment utiliser 'appendChild()'. Aussi bien vous avez démontré 'cloneNode()'. Mes premières tentatives pour ce faire supposaient que vous pouviez ajouter le même nœud enfant plusieurs fois, avec des résultats moins réussis. –

+0

@patricksweeney: Si ce que vous voulez ajouter est complexe, vous devez le construire en utilisant 'appendChild':' var elementToAppend = document.createElement ('span'); var gras = document.createElement ('b'); var text = document.createTextNode ('stuff'); bold.appendChild (texte); elementToAppend.appendChild (gras); ' –

0

appendChild est ce que vous cherchez.

+0

Je connais appendChild, mais ne va pas ajouter à la fin du document? Je veux l'ajouter à chaque occurrence de . – patricksweeney

+2

non, il ajoute à tout élément sur lequel vous appelez la fonction. – Turnor

Questions connexes