Comment changer un élément (par exemple, h1 -> h2) en utilisant jQuery / plain old javascript?

Bien sûr, il existe toute une gamme d’erreurs possibles relatives à la validité des documents, mais j’ai un obstacle immédiat lorsque je modifie un paragraphe ( p ) en un élément d’ address . Ma méthode actuelle est (plus ou moins):

 var p = $('p#test'); p.replaceWith('
' + p.html() + '
');

mais cela échoue pour ce cas particulier; cela fonctionne parfaitement pour p -> blockquote ou h2 -> h3. Firebug suggère qu’un élément à fermeture automatique (

) a été ajouté au document, pour une raison quelconque.

Quelqu’un peut-il repérer le bogue ou suggérer une autre méthode?

 var p = $('p#test'); var a = $('
'). append(p.contents()); p.replaceWith(a);

Votre solution est soumise à toutes sortes de problèmes épouvantables en HTML et éventuellement à des attaques par injection.

Vous pouvez utiliser un espace réservé autour du titre:

  

Titre

Ensuite, utilisez JavaScript DOM pour créer de nouvelles valeurs pour la propriété innerHTML.