jQuery this.html() renvoie undefined

Je suis reformatage vraiment mauvaise HTML à l'aide de jQuery. J'ai besoin d'épissage de la fratrie <font> éléments ensemble. J'ai essayé ce code:

$('font+font').each(function() {
    this.html().appendTo( this.prev() );
    this.remove();
});

mais il m'a donné ce message d'erreur: TypeError: 'undefined' est pas une fonction (évaluation 'this.html()')


Voici un exemple de code HTML:

<font>This fragment </font><font>is actually one element.</font>


Mise à jour

J'ai mis à jour mon code avec $(this), mais il ne fonctionne toujours pas. Lorsque j'exécute ce code

$('font+font').each(function() {
    $(this).html().appendTo( $(this).prev() );
    $(this).remove();
});

J'obtiens cette erreur: TypeError: 'undefined' est pas une fonction (évaluation '$(this).html().appendTo( $(this).prev() )')

<font> n'est pas en HTML...
Donc "vraiment mauvais code HTML". C'est de balisage à partir du milieu des années 90.
Oh désolé, j'ai raté la partie. Ouais, je fais cela tout le temps, avec beaucoup de beaucoup plus laide du code. Ancien logiciel de commerce électronique avec daté des modèles de la spacer.gif disposition de table de jours...
Je vous recommandons de copier les éléments eux-mêmes à la place. $("font + font").each(function() { $(this).contents().appendTo($(this).prev()).end().remove(); });.
très agréable, mais vous devez l'utiliser .end().end() en place de .end().

OriginalL'auteur Brandon Lebedev | 2012-02-09