Een <span> omspanning maken om een element

Status
Niet open voor verdere reacties.

csshunter

Meubilair
Lid geworden
4 aug 2009
Berichten
6.465
Hoi allemaal,
Om een element met een Id wil ik een <span></span> heen zetten met javascript.
  • Met "outerHTML" zou dat makkelijk zijn, maar dat is IE-only.
  • Met "insertBefore", "createElement" e.d. komt er een element voor of na, maar niet eromheen.
  • Als het element het enige element in een ander element is, is het te doen met het opvragen van de parent, daaruit de innerHTML opvragen en vervangen door <span>innerHTML</span>.
  • Maar het element waar 't om gaat hoeft niet het enige element in zijn parent te zijn, dus dan lukt dit niet.
Hoe doe ik het wel?

Met vriendelijke groet,
CSShunter
 
[JS]var el = document.getElementById(id);
var span = document.createElement("span");
el.parent.insertBefore(span, el);
//el.parent.removeChild(el);
span.appendChild(el);[/JS]
Dit zou moeten werken. De stap op regel 4 is misschien nuttig voor het begrip, maar onnodig. Als je een element dat al in je document staat (el) toevoegt (regel 5) aan een ander element (span), wordt 't automatisch van de eerdere plaats (el.parent) weggehaald.
 
Laatst bewerkt:
Ja, de combi met appendChild had ik nog niet gemaakt: dat is 'm!
D.w.z. met el.parentNode ipv el.parent.

Bedankt, ik kan weer verder! :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan