Когда вы используете каждый оператор, он возвращает this
как элемент DOM, а не объект jQuery..html()
должен вызываться для объекта jQuery.Поэтому первая часть вашего исправления заключается в преобразовании this
в элемент jQuery с символом $
.
$(this).html(); //don't use this.html();
Вторая проблема заключается в том, что html()
возвращает строку.Вы не можете вызвать AppendTo()
для строки, только объект jQuery.Поскольку вы работаете с .html()
, я предполагаю, что вам нужно содержимое строки, а не полное содержимое.Если бы это было так, ответ Роба был бы более уместным.
this.textContent = $(this).prev().html() + this.textContent; // prepend siblings content
Окончательный код в конечном итоге выглядит так:
$('font+font').each(function() {
this.textContent = $(this).prev().html() + this.textContent;
$(this).prev().remove();
});
http://jsfiddle.net/b6vLL37k/1