2016-04-25 5 views
0

Also das ist möglich, aber ich bin nicht in der Lage, dies herauszufinden ... Ich muss ein Div in das Elternteil eines verschachtelten Elements injizieren und es haben Vor dem übergeordneten Element angefügt ... Das Problem tritt auf, wenn ich den Speicherort nicht anvisieren kann, indem ich nach der bestimmten Instanz im übergeordneten Element suche. Hoffentlich wird der Code klärenAppend div Oberhalb des Elternteils des spezifischen div mit wechselnder Reihenfolge in dom

Ich brauche die ID aus der verschachtelten div verwenden

<div> 
    <div></div> 
    <div></div> 
    <div> 
     <div> 
      <div id="startFromHere"></div> 
     </div> 
    </div> 
    <div></div> 
    <div></div> 
</div> 

und fügen Sie ein div über dem Haupt Eltern Stelle in der Liste

<div> 
    <div></div> 
    <div></div> 
    <div id="theAppendedDiv"></div> 
    <div> 
     <div> 
      <div id="startFromHere"></div> 
     </div> 
    </div> 
    <div></div> 
    <div></div> 
</div> 

ich das nicht ausrichten können 3. Element in der Liste, weil das Div mit der ID, die ich anvisieren will, nicht an der 3. Position bleibt, es wird sich ändern. Also, wenn es das 5. Element oder das 2. Element ist, muss ich ein div vor dem Elternteil dieses bestimmten geschachtelten div anfügen.

Ich habe auch keine Kontrolle über die HTML und muss dies durch js/jquery injizieren. Es könnte bis zu 10 Ebenen tief sein, verschachtelt in Spannen/Tabellen/Divs usw. Keines der Elternelemente ist beschriftet. Das Einzige, was ich verwenden kann, um irgendetwas anzusteuern, ist eine verschachtelte Element-ID.

+0

So ist die Injektion erfolgt immer auf der zweiten Ebene des divs aber das Element mit der ID in jeder Tiefe sein kann? Wenn ja, können Sie die Root-Ebene auswählen? Wenn nicht, woher weißt du, wo die Stammebene ist? Wenn Sie die Root-Ebene und die ID haben, sollte es einfach sein. –

Antwort

1

Sie können parent() Methode wie folgt verwenden.

$('#startFromHere').parent().parent().before('<div id="theAppendedDiv">The Appended Div<div>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div>1</div> 
 
    <div>2</div> 
 
    <div> 
 
     <div> 
 
      <div id="startFromHere">Start From Here</div> 
 
     </div> 
 
    </div> 
 
    <div>4</div> 
 
    <div>5</div> 
 
</div>

+0

Ich liebe es, wenn es eine einfache Lösung gibt, Danke genau das, was ich brauchte. Ich dachte nicht, dass es die Position im Dom nachverfolgen würde, nachdem mehrere Elternteile zurückverfolgt wurden. – three7studio

Verwandte Themen