2009-05-09 12 views
120

Estoy buscando reemplazar un elemento en el DOM. Por ejemplo, hay un elemento "A" que quiero reemplazar con un "SPAN" en su lugar.¿Cómo reemplazar el elemento DOM en su lugar usando Javascript?

¿Cómo podría ir y hacer eso?

+3

'target.replaceWith (elemento);' es la forma moderna (ES5 +) para hacer esto – Gibolt

+0

@Gibolt ¿Qué DOM spec tiene con ES? Además, todavía no forma parte del estándar DOM, mientras que ES5 se lanzó hace 9 años. – destoryer

Respuesta

167

mediante el uso de replaceChild():

<html> 
<head> 
</head> 
<body> 
    <div> 
    <a id="myAnchor" href="http://www.stackoverflow.com">StackOverflow</a> 
    </div> 
<script type="text/JavaScript"> 
    var myAnchor = document.getElementById("myAnchor"); 
    var mySpan = document.createElement("span"); 
    mySpan.innerHTML = "replaced anchor!"; 
    myAnchor.parentNode.replaceChild(mySpan, myAnchor); 
</script> 
</body> 
</html> 
+7

este ejemplo no funcionaría. Debe poner el bloque de scripts al final del cuerpo para que funcione. Además, solo por diversión: intente agregar la línea [alert (myAnchor.innerHTML)] después de la operación. – KooiInc

+0

Hay un error de ortografía con StackOverflow en el ancla innerText – rahul

+5

¿y si es el elemento raíz html – lisak

50
var a = A.parentNode.replaceChild(document.createElement("span"), A); 

A es la sustituye Un elemento.

+0

Respuesta de @Bjorn Tipling, de hecho, no funciona. Esta es la respuesta (¡correcto!) Para KooiInc, también es correcto, comenta. ¡Ahora funciona! ;-) Tx a ambos! –

17

A.replaceWith (Span)

forma genérica:

target.replaceWith(element); 

Mucho mejor/más limpio que el método anterior.

Por su caso de uso:

A.replaceWith(span); 
+10

No compatible con IE11 o Edge 14 (ahora: 2016-11-16). – jor

+2

Intenta usar Google Closure u otro transpiler para convertir a ES5. No debe escribir código antiguo basado en el soporte del navegador, si tiene una opción mejor y más fácil de mantener – Gibolt

+2

Totalmente de acuerdo, pero IE11 y Edge 14 no son antiguos ... – jor

Cuestiones relacionadas