Не вдаваясь в то, зачем это нужно: эта функция заменяет собтвенные тэги (как, впрочем, и любые существующие, имя которых указано в параметре) на span с нужным классом:
function convertToHTML(tag){
$(tag).replaceWith(function(){
return '<span class="'+tag+'">'+$(this).text()+'<span>';
});
}
Я сделал данную функцию на основе этой (источник):
$(".l2 .item").replaceWith(function(){
return ' <li class="item" > '+$(this).text()+', я кому сказал! </li>';
});
Можно ли убрать из моей функции вложенную, улучшив таким образом код?
(Если желаете дать ответ в jsfiddle, вот рабочий код).
$(tag).replaceWith('<span class="'+tag+'">'+$(tag).text()+'<span>');
Update
Прошу прощения, замена не эквивалентна.
Если набор $(tag) включает больше одного элемента, то $(tag).text() - это склеенный innerText их всех. В то время как replaceWith с функцией вызывает эту функцию отдельно для каждого заменяемого элемента в контексте (this) этого элемента.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей