jQuery: how to change tag name?

前端 未结 17 916
無奈伤痛
無奈伤痛 2020-11-28 07:37

jQuery: how to change tag name?

For example:


    $1

I need

$1
<
17条回答
  •  独厮守ぢ
    2020-11-28 08:20

    You can use this function

    var renameTag  = function renameTag($obj, new_tag) {
        var obj = $obj.get(0);
        var tag = obj.tagName.toLowerCase();
        var tag_start = new RegExp('^<' + tag);
        var tag_end = new RegExp('<\\/' + tag + '>$');
        var new_html = obj.outerHTML.replace(tag_start, "<" + new_tag).replace(tag_end, '');
        $obj.replaceWith(new_html);
    };
    

    ES6

    const renameTag = function ($obj, new_tag) {
        let obj = $obj.get(0);
        let tag = obj.tagName.toLowerCase();
        let tag_start = new RegExp('^<' + tag);
        let tag_end = new RegExp('<\\/' + tag + '>$');
        let new_html = obj.outerHTML.replace(tag_start, "<" + new_tag).replace(tag_end, '');
        $obj.replaceWith(new_html);
    };
    

    Sample code

    renameTag($(tr),'div');
    

提交回复
热议问题