3

IMGタグとAタグのセットをdivタグで動的に囲み込もうとしていますが、機能させることができません。

私のhtml:

<img class="myClass-1" src="img5" />
<a class="myClass-2" href="url"></a>  

私のスクリプト:

$('img.myClass-1').each(function(){
   $(this).before('<div style="position: relative;">');
   $(this).next().after('</div>');
});  

私のFirebugの結果:

<div style="position: relative;"/>
<img class="myClass-1" src="img5" />
<a class="myClass-2" href="url"></a>  

私が達成しようとしていること:

<div style="position: relative;">
<img class="myClass-1" src="img5" />
<a class="myClass-2" href="url"></a>
</div>  

交換しました

$(this).next().after('</div>');  

$(this).next().after('<p>test</p>');  

.next()。after()コードを実行できなかったかどうかを確認するだけですが、正常に機能します。私はjQueryの使用に不慣れで、何が間違っているのか理解できません。誰かが助けることができますか?お願いします。

4

2 に答える 2

3

.wrapAll()次のように使用できます。

$(this).next().andSelf().wrapAll('<div style="position: relative;" />');

ここでテストできます。これにより、両方をそのコンテナ<img><a>ラップします。<div>

于 2010-10-06T15:32:30.820 に答える
1

each() を取り除くこともできます (または、これをニックのスニペットのセレクターに置き換えるだけです):

$('img.myClass-1').next().andSelf().wrapAll('<div style="position: relative;" />');
于 2010-10-06T15:40:03.243 に答える