2011-01-15 9 views
3

div内の要素と3つの要素の後にhtmlオブジェクトを追加できるかどうかを知る必要があります。jQuery - 要素の数の後にhtmlを追加!

<div id="wrapper"> 
<a href="#">1</a> 
<a href="#">1</a> 
<a href="#">1</a> 
//insert html with jQuery here 
<a href="#">1</a> 
<a href="#">1</a> 
<a href="#">1</a> 
//insert html with jQuery here 
<a href="#">1</a> 
<a href="#">1</a> 
<a href="#">1</a> 
//insert html with jQuery here 
</div> 

答えて

6
$('#wrapper a').each(function(i,e){ 
    if (((i+1) % 3) == 0) 
    $(this).after('<p>Hello, world.</p>'); 
}); 

はあなたの要素のインデックスを与える.eachの「i "のパラメータを利用してください。 Moduloを使用して3番目のアイテムを取得して追加するよりも、

の作業例:この時点でhttp://www.jsfiddle.net/hd7FP/1/

はちょうど私が彼がそれらの場所でのhtmlを挿入する代わりにAPPENDの)(.after使用する必要があるだろうと思い代替ソリューション

+0

多分ちょうど((i + 1)== 3)十分に良いでしょうか? ;) – shybovycha

+0

これは完璧に動作しています!ありがとうございました! –

+0

@Sshybovycha:jsfiddleリンクで試してみてください。 (試行錯誤は非常に有効な学習方法です; D) - @FlorescuAdrian:あなたは大歓迎です。 –

5

nth-child-selectorをご覧ください。基本的には

$("#wrapper a:nth-child(3n)").after("<span>I'm new.</span>"); 
+0

を示します。 –

+0

これは良いです、ありがとう!しかし、それは子供のスパンを広告します。 ahrefの終了後にhtmlを追加する方法はありますか? –

+0

@Florescu:['append'](http://api.jquery.com/append/)ではなく[' after'](http://api.jquery.com/after/) – user113716

3
$('#wrapper a').each(function(index) { 
    if ((index+ 1) % 3 == 0) 
    $(this).after(content); 
}); 
関連する問題