Замените имя элемента, сохранив атрибуты с помощью jquery.

Я пытаюсь создать настройки jquery, где все экземпляры <i> изменены на <em>, Это достаточно легко сделать с:

$("i").each(function(){
    $(this).replaceWith($('<em>' + this.innerHTML + '</em>'));
});

Но мне трудно понять, как изменить все <i> теги, но сохраняют индивидуальные атрибуты. Так что если у меня есть <i style="background-color: #333;" alt="Example" title="Example">Example Text</i> Я хотел бы изменить его на <em style="background-color: #333;" alt="Example" title="Example">Example Text</em>

Спасибо за любую помощь!

2 ответа

Неправильный подход ИМО.

Я бы порекомендовал заменить сами элементы непосредственно в DOM. Может быть, этот вопрос поможет:

JQuery конвертировать DOM-элемент в другой тип

Это просто

$(это).attributes(); Вы получите все атрибуты тега i для каждого экземпляра, просто поместите его в функцию замены.

Я не уверен, как вы можете играть с функцией, но в моем коде знаний будет что-то вроде этого.

$("i").each(function(){
var attribute = $(this).attributes();
$(this).replaceWith($('<em'+attributes+'>'

+ this.innerHTML + '')); });

Надеюсь, поможет.

Другие вопросы по тегам