Замените имя элемента, сохранив атрибуты с помощью jquery. - PullRequest
1 голос
/ 22 мая 2010

Я пытаюсь создать настройку 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 ]

2 голосов
/ 22 мая 2010

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

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

jQuery преобразовывает элемент DOM в другой тип

0 голосов
/ 22 мая 2010

Это просто

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...