首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用jquery更改元素类型

如何使用jquery更改元素类型
EN

Stack Overflow用户
提问于 2011-12-21 09:31:28
回答 5查看 77.4K关注 0票数 109

我有以下代码

代码语言:javascript
复制
<b class="xyzxterms" style="cursor: default; ">bryant keil bio</b>

如何在保留所有其他属性和信息的情况下将b标记替换为h1标记?

EN

回答 5

Stack Overflow用户

发布于 2013-03-22 02:05:41

@jakov和@Andrew Whitaker

这是一个进一步的改进,它可以一次处理多个元素。

代码语言:javascript
复制
$.fn.changeElementType = function(newType) {
    var newElements = [];

    $(this).each(function() {
        var attrs = {};

        $.each(this.attributes, function(idx, attr) {
            attrs[attr.nodeName] = attr.nodeValue;
        });

        var newElement = $("<" + newType + "/>", attrs).append($(this).contents());

        $(this).replaceWith(newElement);

        newElements.push(newElement);
    });

    return $(newElements);
};
票数 10
EN

Stack Overflow用户

发布于 2015-12-01 23:37:44

@Jazzbo的回答返回了一个包含jQuery对象数组的jQuery对象,该对象是不可链接的。我对其进行了更改,使其返回的对象更类似于$.each返回的对象:

代码语言:javascript
复制
    $.fn.changeElementType = function (newType) {
        var newElements,
            attrs,
            newElement;

        this.each(function () {
            attrs = {};

            $.each(this.attributes, function () {
                attrs[this.nodeName] = this.nodeValue;
            });

            newElement = $("<" + newType + "/>", attrs).append($(this).contents());

            $(this).replaceWith(newElement);

            if (!newElements) {
                newElements = newElement;
            } else {
                $.merge(newElements, newElement);
            }
        });

        return $(newElements);
    };

(还进行了一些代码清理,以便通过jslint。)

票数 4
EN

Stack Overflow用户

发布于 2012-07-13 02:55:39

@Andrew Whitaker:我提出这样的改变:

代码语言:javascript
复制
$.fn.changeElementType = function(newType) {
    var attrs = {};

    $.each(this[0].attributes, function(idx, attr) {
        attrs[attr.nodeName] = attr.nodeValue;
    });

    var newelement = $("<" + newType + "/>", attrs).append($(this).contents());
    this.replaceWith(newelement);
    return newelement;
};

然后,您可以执行以下操作:$('<div>blah</div>').changeElementType('pre').addClass('myclass');

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8584098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档