Eu estou olhando para substituir um elemento no DOM.
Por exemplo, há um <a>
elemento que eu quero substituir por um <span>
.
Como eu faria isso?
javascript
dom
AMD
fonte
fonte
target.replaceWith(element);
é o (ES5 +) forma moderna de fazer issoRespostas:
usando replaceChild () :
fonte
a é o elemento A substituído.
fonte
A.replaceWith(span)
- Nenhum pai é necessárioForma genérica:
Muito melhor / mais limpo que o método anterior.
Para o seu caso de uso:
Documentos do Mozilla
Navegadores suportados - 94% abr 2020
fonte
Essa pergunta é muito antiga, mas eu me encontrei estudando para uma Certificação Microsoft e, no livro de estudo, foi sugerido o uso:
Eu procurei e parece ser suportado apenas no IE. Doh ..
Eu pensei em adicioná-lo aqui como uma nota lateral engraçada;)
fonte
Eu tive um problema semelhante e encontrei este tópico. Substituir não funcionou para mim, e passar pelos pais foi difícil para a minha situação. O Html interno substituiu as crianças, o que também não era o que eu queria. O uso do outerHTML fez o trabalho. Espero que isso ajude alguém!
fonte
Você pode substituir um nó usando
Node.replaceWith(newNode)
.Este exemplo deve manter todos os atributos e filhos do nó de origem:
fonte
Exemplo para substituir elementos LI
fonte
Dadas as opções já propostas, a solução mais fácil sem encontrar um pai:
fonte