0

私はimgを持っています

<img id="dynamic" src="www.google.com.br" />

jquery の before() および after() メソッドを使用して、その img にアンカーを設定するにはどうすればよいですか?

このような:

$('#dynamic').before('<a href="http://google.com">');
$('#dynamic').after('</a>');

しかし...私がこのようなことをすると、jqueryはアンカーの終了タグを自動的に追加します

<a href="http://google.com"></a>
<img id="dynamic" src="www.google.com.br" />

アイデア?

4

4 に答える 4

4

要素の一部を追加することはできません。

$('#dynamic').before('<a href="http://google.com">');

要素全体を生成し、

$('#dynamic').after('</a>');

要素全体を生成します (ブラウザによってはまったく生成しません)。

メソッドを使用し.wrapます。

$('#dynamic').wrap('<a href="http://google.com"></a>');
于 2013-04-12T19:39:25.040 に答える
3

appendbefore、などの jQuery DOM 追加関数はafter、HTML を文字列として編集するのではなく、要素で構成される有効な DOM フラグメントを追加します。</a>そのため、DOM が無効になるようなものを単に追加することはできません。

必要なのは、要素をラップすることです:

$('#dynamic').wrap('<a href="http://google.com"/>');
于 2013-04-12T19:39:08.257 に答える
3

.wrap()代わりに使用してください:

$('#dynamic').wrap('<a href="http://google.com"></a>');
于 2013-04-12T19:39:21.043 に答える
2

試す

$('#dynamic').wrap('<a href="http://google.com"/>');
于 2013-04-12T19:39:07.540 に答える