Isso é possível?
exemplo:
$('a.change').click(function(){
//code to change p tag to h5 tag
});
<p>Hello!</p>
<a id="change">change</a>
Portanto, clicar na âncora de alteração deve fazer com que a <p>Hello!</p>
seção mude para (como exemplo) uma tag h5, para que você termine <h5>Hello!</h5>
após o clique. Sei que você pode excluir a tag p e substituí-la por uma h5, mas existe alguma maneira de realmente modificar uma tag HTML?
"<" + el.outerHTML.replace(/(^<\w+|\w+>$)/g, "H5") + ">";
Função jQuery plugável ou plugável: linkAqui está uma extensão que fará tudo isso, em tantos elementos de várias maneiras ...
Exemplo de uso:
ou
ou mesmo
Fonte do plugin:
fonte
return node;
verdade, deve serreturn this;
como mostrado na "versão antiga" do plug-in. Isso é essencial para encadear eventos como$("tr:first").find("td").clone().replaceTag("li").appendTo("ul#list")
Em vez de alterar o tipo de tag, você deve alterar o estilo da tag (ou melhor, a tag com um ID específico.) Não é uma boa prática alterar os elementos do seu documento para aplicar alterações estilísticas. Tente o seguinte:
fonte
Percebi que a primeira resposta não era exatamente o que eu precisava, então fiz algumas modificações e achei que a postaria aqui.
Melhorado
replaceTag(<tagName>)
Argumentos:
Devoluções:
Ok, eu sei que existem algumas respostas aqui agora, mas resolvi escrever isso novamente.
Aqui, podemos substituir a tag da mesma maneira que usamos a clonagem. Estamos seguindo a mesma sintaxe que .clone () com o
withDataAndEvents
edeepWithDataAndEvents
que copiar as crianças dados e eventos nós, se usado.Exemplo:
Fonte:
fonte
.children()
não incluirá nenhum nó puramente de texto. Você pode tentar o.contents()
IIRC.A idéia é quebrar o elemento e desembrulhar o conteúdo:
Uso da amostra:
Demo
fonte
Eu vim com uma abordagem na qual você usa uma representação de string do seu objeto jQuery e substitui o nome da tag usando expressões regulares e JavaScript básico. Você não perderá nenhum conteúdo e não precisará repetir cada atributo / propriedade.
Por fim, você pode substituir o objeto / nó existente da seguinte maneira:
fonte
Esta é a minha solução. Permite alternar entre tags.
fonte
Essa é a maneira rápida de alterar as tags HTML dentro do seu DOM usando o jQuery. Acho que essa função replaceWith () é muito útil.
fonte
Você pode obter por
data-*
atributodata-replace="replaceTarget,replaceBy"
dessa forma com a ajuda do jQuery para obterreplaceTarget
ereplaceBy
valor por.split()
método após obter valores e, em seguida, usar o.replaceWith()
métodoEssa
data-*
técnica de atributo para gerenciar facilmente qualquer substituição de tag sem alterar abaixo (código comum para toda a substituição de tag).Espero que o trecho abaixo o ajude muito.
fonte
A função a seguir faz o truque e mantém todos os atributos. Você o usa por exemplo assim:
changeTag("div", "p")
Para ter certeza de que funciona, verifique o exemplo a seguir
fonte
Existe um motivo específico para você precisar alterar a tag? Se você quiser apenas aumentar o texto, alterar a classe CSS da tag p seria a melhor maneira de fazer isso.
Algo assim:
fonte