2011-01-15 12 views
3

Ich muss wissen, ob ich die Elemente in einem div und nach 3 Elementen zählen kann, um ein HTML-Objekt hinzuzufügen.jQuery - Nach Anzahl der Elemente HTML hinzufügen!

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

Antwort

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

Nutzen .each ‚s "i" Parameter, der Elementindex gibt. Dann können Sie Modulo verwenden, um das 3. Element zu erhalten und anzuhängen.

Arbeitsbeispiel: http://www.jsfiddle.net/hd7FP/1/

an dieser Stelle zeigt nur eine alternative Lösung

+0

vielleicht nur ((i + 1) == 3) wäre gut genug? ;) – shybovycha

+0

Es funktioniert perfekt! Vielen Dank! –

+0

@Sshybovycha: Probieren Sie es auf der JSFiddle-Link und sehen, ob das funktioniert. (Versuch und Irrtum ist eine sehr gute Art zu lernen.; D) - @FlorescuAdrian: Gern geschehen. –

5

Werfen Sie einen Blick auf die nth-child-selector.

Grundsätzlich gilt:

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

Ich glaube, er brauchen würde, verwenden .after() anstelle von append html an den Stellen einzufügen. –

+0

Das ist gut, danke! Aber es zeigt die Spanne im Kind an, nicht danach. Gibt es eine Möglichkeit für mich, den HTML-Code hinzuzufügen, nachdem die ahref endet? –

+0

@Florescu: Sie wollen ['nachher'] (http://api.jquery.com/after/) anstelle von [' append'] (http://api.jquery.com/append/) – user113716

3
$('#wrapper a').each(function(index) { 
    if ((index+ 1) % 3 == 0) 
    $(this).after(content); 
}); 
Verwandte Themen