html new标记,使用jQuery更改HTML标记?

这篇博客介绍了一个jQuery插件,用于替换HTML元素的同时,可以选择性地保留或丢弃原有类和属性。示例展示了如何将`div`替换为`span`,并迁移或不迁移原有类和属性。此插件适用于前端开发中需要动态更新DOM结构的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里有一个扩展,可以用同样多的方式完成所有的任务.

示例用法:保留现有的类和属性:$('div#change').replaceTag('', true);

或丢弃现有类和属性:$('div#change').replaceTag('', false);

甚至将所有div替换为span、复制类和属性,添加额外的类名。$('div').replaceTag($('').addClass('wasDiv'), true);

插件来源:$.extend({

replaceTag: function (currentElem, newTagObj, keepProps) {

var $currentElem = $(currentElem);

var i, $newTag = $(newTagObj).clone();

if (keepProps) {//{{{

newTag = $newTag[0];

newTag.className = currentElem.className;

$.extend(newTag.classList, currentElem.classList);

$.extend(newTag.attributes, currentElem.attributes);

}//}}}

$currentElem.wrapAll($newTag);

$currentElem.contents().unwrap();

// return node; (Error spotted by Frank van Luijn)

return this; // Suggested by ColeLawrence

}});$.fn.extend({

replaceTag: function (newTagObj, keepProps) {

// "return" suggested by ColeLawrence

return this.each(function() {

jQuery.replaceTag(this, newTagObj, keepProps);

});

}});