jQuery: улучшение кода функции для замены одних тэгов на другие

318
24 ноября 2016, 09:53

Не вдаваясь в то, зачем это нужно: эта функция заменяет собтвенные тэги (как, впрочем, и любые существующие, имя которых указано в параметре) на 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, вот рабочий код).

Answer 1
$(tag).replaceWith('<span class="'+tag+'">'+$(tag).text()+'<span>');

Update

Прошу прощения, замена не эквивалентна.

Если набор $(tag) включает больше одного элемента, то $(tag).text() - это склеенный innerText их всех. В то время как replaceWith с функцией вызывает эту функцию отдельно для каждого заменяемого элемента в контексте (this) этого элемента.

READ ALSO
сохранение изображения jquery

сохранение изображения jquery

здравствуйте, есть новостной блок. item , внутри него есть.

305
Вывести подписи на фотографиях

Вывести подписи на фотографиях

Подскажите пожалуйста как можно вывести подписи на фото справа внизу вне зависимости от ширины, высоты и выравнивания изображения?.

329
JQ селекторы через data

JQ селекторы через data

Я хочу сделать выборку.

379