2017-05-31 19 views
1
<div class="slides"> 
<img class="item-1 cardone" src="images/cardone.jpg"/> 
<img class="item-2 cardtwo" src="images/cardtwo.jpg"/> 
<img class="item-3 cardthree" src="images/cardthree.jpg"/> 
<img class="item-4 cardfour" src="images/cardfour.jpg"/> 
<img class="item-5 cardfive" src="images/cardfive.jpg"/> 
</div> 

<img class="cardone" src="images/cardone.jpg"/><!-- gets added to slides on click, existing image with same class removed at the same time--> 

$('.cardone').click(function(){ 
    var newSrc = $(this).attr('class'); 
    $(this).insertAfter($('.slides img:nth-child(2)')).addClass('item-3'); 
    $('.slides img').not(this).removeClass(newSrc); 
}); 

カードンがクリックされると、スライドに追加され、既存のイメージを同じクラス名で置き換えようとします。最も遠いのはクラスを削除することですが、画像そのものを削除することはありません。同じクラスの既存の兄弟を削除します。

+0

をあなたは後で挿入するimgを見つけるので、同じコードを使ってそのimgを削除することができます: '$( '。slides img:nth-​​child(2)')。remove();'心に留めていた? –

+0

@ freedomn-mカルーセルに配置されているため、特定の画像をnth-child(2)に挿入しています。問題は、同じsrc属性を持つ同じイメージを削除する必要があることです。私はイメージを基本的に消えるようにsrcを変更しようとしましたが、それにも問題がありました。 srcを変更しても問題ないと思われる場合は、 –

+0

イベントをパラメータとして渡すことができます。以下のコード行より、$(event.target).not(this).removeClass(newSrc); – Nimmi

答えて

1

あなたは以下のようにそれを行うことができます: -

$("."+newSrc+"").not(this).remove(); 

例: - あなたは `img`を挿入するのではなく、単にその` src`を変更することを考えると

$('.cardone').click(function(){ 
 
    var newSrc = $(this).attr('class'); 
 
    $("."+newSrc+"").not(this).remove(); 
 
    $(this).insertAfter($('.slides img:nth-child(2)')).addClass('item-3'); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="slides"> 
 
<img class="item-1 cardone" src="images/cardone.jpg"/> 
 
<img class="item-2 cardtwo" src="images/cardtwo.jpg"/> 
 
<img class="item-3 cardthree" src="images/cardthree.jpg"/> 
 
<img class="item-4 cardfour" src="images/cardfour.jpg"/> 
 
<img class="item-5 cardfive" src="images/cardfive.jpg"/> 
 
</div> 
 

 
<img class="cardone" src="images/cardone.jpg"/> // gets added to slides on click, existing image with same class removed at the same time.

+0

srcを削除するとimage要素が削除されると思っていましたが、class "item-1"が添付されているためそうではありません。私はimgを完全に削除する必要があると思うだけでなく、src。しかし、あなたは私がそれを必要と思った方法を正確に行いました。 –

+0

@ブラッドバンダーブッシュ今すぐチェック –

+0

ブリリアント!それも同様に動作します。この前のコードは私が壊して、それをうまく機能させました。 $( "。" + newSrc + "")。not(this).remove( 'img');たくさん助けてくれました。 –

関連する問題