2016-12-08 7 views
-1
の最後の子を削除します

私は特定のクラスで私のDOMの最後の要素を削除しようとしていますが、私は多くの運がないです。クラスを完全に削除することはできますが、最後のクラスは削除することはできません。すべてのヘルプはJavaScript:クラス

<div class="banner banner-1"></div> 
<div class="banner banner-2"></div> 
<div class="banner banner-3"></div> 
<div class="banner banner-4"></div> 
<div class="banner banner-3"></div> 
<div class="banner banner-5"></div> 

申し訳素晴らしいことだ、で私の他のコードを貼り付けするのを忘れ:たとえば

var classToRemove = 'banner-3'; 

document.removeChild(document.getElementsByClassName(classToRemove)) 

、私は6つのバナーを持っていますが、バナー3が繰り返されます。最後のbanner-3を取得して最初のものに影響を与えずに削除するにはどうすればよいですか?

ありがとうございます!

+0

最初にそれらを削除ではなくのgetElementsByClassNameでリストを取得することができますこのPLUNKER https://plnkr.co/edit/FzPJxGjY5XZE1bH9tnuL?p=previ ew –

+0

この質問はjavascriptではないjqueryだから、dupeとして閉じることは正確ではありません@ZakariAcharki –

+0

これはjQueryを使いたくないので重複していません。 – Nick

答えて

1
// access all elements by class 
var ele = document.getElementsByClassName('banner'); 
// find last element 
var lastEle = ele[ ele.length-1 ]; 
//--- do what you need to do with the element 

または

var ele = document.querySelectorAll(".banner .banner_3"); 
var lastEle = ele[ ele.length-1 ]; 
lastEle.parentNode.removeChild(lastEle); 
+0

これは、すべての子の最後の要素を取得しますが、具体的には 'banner-3'のような特定のクラスの最後の要素を取得しません。 –

+0

@Antonvb - OPであることがわかりました。答えを拡張しました:-) – jeff

0

あなたはjQueryのチェックを使用してを嫌うされていない場合、その後の反復で

for(var i=1;i<document.getElementsByClassName('banner-3').length;i++) 
 
    document.getElementsByClassName('banner-3')[i].remove()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="banner banner-1">1</div> 
 
<div class="banner banner-2">2</div> 
 
<div class="banner banner-3">3</div> 
 
<div class="banner banner-4">4</div> 
 
<div class="banner banner-3">3</div> 
 
<div class="banner banner-5">5</div>