如何用jQuery替换HTML标签的一部分

How to replace part of an HTML tag with jQuery?

本文关键字:标签 一部分 HTML 替换 何用 jQuery      更新时间:2023-09-26

可能的重复项:
使用 jQuery 更改 HTML 标签?

我已经四处寻找了一段时间,但没有找到与我想要做的完全匹配的答案。我希望能够替换 html 标签的一部分,而无需实际替换所有内容。例如我的 HTML...

<a href="">Test</a>

我希望最终结果是这样的...

<test href="">Test</a>

我试过这个...但它只是取代了一切...

$("a").replaceWith("&lt;test");

这似乎也行不通...

$("a").find().html("<a").replaceWith("&lt;test");

编辑:

我不认为我对我的第一部分不是很清楚。我的最终目标是只替换标签的一部分......例如。。

找到<a并将其替换为<test

.

.......

我觉得我正走在正确的道路上,但我不确定从这里走向何方。任何帮助都非常感谢。谢谢。

上帝只知道为什么你会把你的元素改成甚至不接近有效HTML的东西,但这是怎么做的:

(function($) {
    $.fn.changeElementType = function(newType) {
        var attrs = {};
        $.each(this[0].attributes, function(idx, attr) {
            attrs[attr.nodeName] = attr.nodeValue;
        });
        this.replaceWith(function() {
            return $("<" + newType + "/>", attrs).append($(this).contents());
        });
    };
})(jQuery);
$("a").changeElementType('test');

小提琴

(从安德鲁·惠特克斯那里偷来的答案在这里)

以下是使用 .unwrap() 和 .wrap() 的方法

$('a') // select the element
.contents()  //  traverse to contents
.unwrap()  // unwrap - remove parent tag - which happens to be the a
.wrap('<test href="">')  //  wrap contents with test tag

http://jsfiddle.net/wirey00/mVWfp/