2016-11-01 1 views
0

Ich suche, ob das letzte <hr>-Tag innerhalb der Eltern <main> direkt vor dem schließenden </main>-Tag existiert.Suchen Sie ein HTML-Element neben bestimmten schließenden Tag

So im Folgenden die <hr>-Tag, das innerhalb des <main> Tag, direkt vor einem Schließen </main> Tag ist das eine gezielte letzte ist:

<main> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem ipsum 
    </div> 
    <hr class="container" /> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem ipsum 
    </div> 
    <hr class="container" /> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem 
    </div> 
    <hr class="container" /> 
</main> 

Obwohl die <hr> sollte nicht entfernt werden, wenn zum Beispiel, gibt es einen <div> Tag davor:

<main> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem ipsum 
    </div> 
    <hr class="container" /> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem ipsum 
    </div> 
    <hr class="container" /> 
    <div> 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
    lorem ipsumlorem ipsumlorem 
    </div> 
</main> 
+0

Also, leider hat @Sirko schon geantwortet, aber wir mögen es generell, wenn die Benutzer selbst eine Lösung anstreben. –

+0

@MikeMcCaughan - Ich kann das schätzen. Ich habe versucht, zunächst eine reine JS-Route zu gehen und die Lösung leider zu kompliziert zu machen. – SiriusBits

Antwort

3

Sie können die HR-Elemente filtern basierend auf, ob sie das letzte Kind des gleichen Eltern sind

$('hr').filter(function() { 
    return this === this.parentNode.lastElementChild; 
}).remove(); 

FIDDLE

Oder alle HR Elemente zielen, die auch das letzte Kind sind

0

jQuqery Lösung kommt auf das Wahlrecht bekommen:

if($('main .container:last-child').length > 0){ 
    // do your stuff 
} 
2

Um dies zu erreichen, können Sie das letzte Element innerhalb der main, überprüfen, ob es eine 012 ist, und entfernen Sie es, wenn so:

var $last = $('main :last'); 
 
if ($last.is('hr')) 
 
    $last.remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<main> 
 
    <div> 
 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
 
    lorem ipsumlorem ipsumlorem ipsum 
 
    </div> 
 
    <hr class="container" /> 
 
    <div> 
 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
 
    lorem ipsumlorem ipsumlorem ipsum 
 
    </div> 
 
    <hr class="container" /> 
 
    <div> 
 
    lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsum 
 
    lorem ipsumlorem ipsumlorem 
 
    </div> 
 
    <hr class="container" /> 
 
</main>

Hier ist eine Arbeits jsFiddle als SO Schnipsel noch gebrochen werden:

Working example

Verwandte Themen