2016-11-01 4 views
0

の最後の<hr>タグが</main>タグの直前に存在するかどうかを調べたいと思います。特定の終了タグの隣にあるHTML要素を見つけよう

だから次に、直接終了</main>タグの前に、<main>タグ内の最後である<hr>タグが対象です:

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

場合<hr>は、例えば、削除すべきではありませんが、 <div>タグは、その前にあります:

<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

残念ながら@Sirkoはすでに答えましたが、私たちは一般的に、ユーザー自身が解決策に向けていくらかの努力をしてほしいと思っています。 –

+0

@MikeMcCaughan - 私はそれを感謝することができます。最初は純粋なJSルートに行き、残念ながら解決策を複雑にしていました。 – SiriusBits

答えて

3

$('main hr:last-child').remove(); 
0

jQuqeryソリューションは、ダウンセレクターの右を得るために来る:

あなたは、彼らが同じ親

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

FIDDLE

、あるいはまた最後の子であるあらゆるHR要素をターゲットの最後の子かどうかに基づいて、HR要素をフィルタリングすることができます

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

これを実現するには、main内の最後の要素を取得し、hr、もしそうならば、それを削除します。

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

はSOスニペットはまだ壊れているとして働いjsFiddleです:

Working example

関連する問題