3

次のコード行は、pタグをタグに変更しますdiv

$('p').contents().unwrap().wrap('<div />');

問題は次のとおりです。

これにより、内部タグも s に変わりますdiv!

例:

次の HTML を見てください。

<p>abc<a>121</a>cba</p>

上記のコードを実行すると、次のようになります。

<div>abc</div>
<div><a>121</a></div>
<div>cba</div>

しかし、私はこれを達成したいと思います:

<div>abc<a>121</a>cba</div>

これを達成するために私は何ができますか? また、私がうまくいかないのになぜうまくいくのでしょうか?

4

2 に答える 2

5

あなたが必要

$('p').wrap('<div />').contents().unwrap();

デモ:フィドル

あなたのコードは間違っています

  1. $('p').contents().unwrap()要素を削除し、pすべての子ノードをp要素の親に追加すると、セットには 3 つの要素が含まれます。
  2. .wrap('<div />');divタグで3つの要素すべてをラップします

別の可能な解決策は

$('p').contents().unwrap().wrapAll('<div />');

デモ:フィドル

于 2013-07-26T03:20:58.770 に答える
0

あなたはこれを試すことができます

$('p').replaceWith($('<div>'+ $('p').html()+ '</div>'));
于 2013-07-26T03:20:54.943 に答える