Legen Sie neue DIV zwischen zwei DIVs, die in die gleiche Klasse und sind unmittelbare Geschwister
Kämpfen mit diesem für eine Weile jetzt. Mein markup vereinfacht:
<div class=row>
<div class="somediv"></div>
<div class="somediv2"></div>
<div class="elem"></div>
<div class="elem"></div>
<div class="somediv3"></div>
<div class="somediv4"></div>
<div class=row>
....
Muss ich einen Weg finden, wählen Sie alle DIVs auf Dokument bereit:
1. hat eine Klasse: elem
2. Ihre nächste DIV auch den Namen der Klasse: elem.
Dann muss ich fügen Sie ein neues DIV-Element zwischen Ihnen:
<div class=row>
<div class="somediv2"></div>
<div class="elem"></div>
<div class="new"></div>
<div class="elem"></div>
<div class="somediv3"></div>
<div class="somediv4"></div>
<div class=row> //and it goes...
$(document).ready( function () {
if($('.elem').next().hasClass('.elem')) {
$('<div class="new"></div>').appendTo().prev('.elem');
} else {
});
});
InformationsquelleAutor elbatron | 2011-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Ist es mit CSS adjacent sibling selector (
+
). Es findet ein element mit der Klasse.elem
mit einem anderen element mit der Klasse.elem
unmittelbar vorhergehende, fügt dann ein neues div, bevor es.Fiddle: http://jsfiddle.net/4r2k4/
Vielen Dank für die Geigen. Ich vergaß zu erwähnen (sorry), dass der html-Code wird erzeugt durch javascript. Ihre codes sind die Arbeit und ist einfach zu verstehen auf einer normalen Seite, aber ich denke, weil der generierten Inhalte, ist dies nicht für mich arbeiten. Wenn ich mit click-Ereignis, das ich einfach Leben (), um die Funktion, wie kann etwas ähnliches tun in diesem Fall?
Es funktioniert, wenn ich es anbringen, um ein click-Ereignis in der oben genannten Umgebung.
Ich denke, möchten Sie vielleicht post eine neue Frage um die Antwort zu bekommen .Leben Teil. Ich denke, die Antwort wird am Ende mehr wie Ihre original-code und weniger wie Matt die elegante Lösung.
Danke Jungs. Die Anbringung einer live click-Ereignis ist perfekt, in meinem Fall.
InformationsquelleAutor Matt Bradley
Die nicht-jQuery-Lösung:
Live-demo: http://jsfiddle.net/2MfgB/2/
"Aber Šime, das funktioniert nicht im IE8..."
:P
Update:
Alternative Lösung:
Live-demo: http://jsfiddle.net/2MfgB/3/
InformationsquelleAutor Šime Vidas
Dein code sieht ziemlich gut zu mir. Nicht müssen Sie nur wickeln Sie es in ein
each
so, dass es feuert auf die?InformationsquelleAutor mrtsherman