0

重複の可能性:
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

.........

正しい道を進んでいるように感じますが、ここからどこへ行くべきかわかりません。どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

2

.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/

于 2012-08-15T16:59:30.793 に答える
2

要素を有効な 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');

フィドル

アンドリュー・ウィテカーの回答から盗まれました SO でここに

</p>

于 2012-08-15T16:50:16.007 に答える