1

我正在尝试创建一个 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>

谢谢你的帮助!

4

2 回答 2

2

错误的方法IMO。

我建议直接在 DOM 中替换实际元素本身。也许这个问题有帮助:

jQuery 将 DOM 元素转换为不同的类型

于 2010-05-21T20:12:56.477 回答
0

很简单

$(this).attributes(); 将为您获取每个实例的 i 标记的所有属性,只需将其放入您的替换函数中。

我不确定你怎么能玩一个函数,但在我的知识中,代码会是这样的。

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

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

希望能帮助到你。

于 2010-05-21T20:21:24.767 回答