2017-09-28 14 views
0

この特定のケースでjQuery remove()が機能しないのはなぜですか?また、目的の効果(最後のdiv.progressを削除)を達成するにはどうすればよいですか?私はjQuery 3.2.1を使用しています。クリックイベントは、がトリガーされていることを確認しました。この特定のケースでjQuery remove()が機能しないのはなぜですか?

HTML:

<div class="progress-bar"> 
    <div class="progress"></div> 
    <div class="progress"></div> 
    <div class="progress"></div> 
</div> 

JS:

$(".arrow-right").click(function(){ 
    $(".progress-bar").append("<div class=\"progress\"></div>"); 
}); 

$(".arrow-left").click(function(){ 
    $(".progress-bar .progress:last").remove(); 
}); 

OR

$(".arrow-left").click(function(){ 
    $(".progress-bar").children().last().remove(); 
}); 
+2

$( 'プログレスバーの進行状況:last-child')。remove(); '$( '。プログレスバー.progress')。last()。remove();' – gurvinder372

+0

Ifあなたは答えとしてこれを投稿します。私はそれを受け入れることを喜んでします。 – Pim

+0

@ gurvinder372 ':last'は':last-child'と同じものです。 – Santi

答えて

1

あなただけ使用することができます$('.progress-bar .progress').last().remove()$('.progress-bar .progress:last').remove(); 0と間違って何もありません

+1

これはなぜOPが機能しないのか、あなたの*が*なるのか説明しません。 – Santi

-2

https://jsfiddle.net/gvmr2Lex/4/

たぶん、あなたのイベントがトリガされていません。

$(document).on("click",".arrow-left",function(){ 
    $('.progress-bar .progress:last').remove(); 
}); 
-2

ちょうど使用(ベストプラクティス)、このような結合事象をお試しください:

<div class="progress-bar"> 
    <div class="progress">d</div> 
    <div class="progress">d</div> 
    <div class="progress">d</div> 
</div> 
<a href="#" class="arrow-left"> 
Arrow Left 
</a> 

$(".arrow-left").click(function(){ 
    $('.progress:last-child').remove(); 
}); 

Example in jsfiddle

+0

編集したコードを再考してください。 – fatih

0

をここではjsfiddleの小さな例です。

ここれます最小コード:あなたが使用して試すことができます

.progress-bar .progress:last - will select the last progress on entire site 
.progress-bar:last-child - will select last child of every progressbar on the entire site 
.children().last() - to select using methods 

jsFiddle - selector

Javascriptを:

$(function() { 
    $('.progress-bar').children().last().addClass("last"); 
}); 

HTML:

<div class="progress-bar"> 
<div class="progress"></div> 
<div class="progress"></div> 
<div class="progress"></div> 
<div class="progress"></div> 
<div class="progress"></div> 
</div> 

CSS:

.progress{ 
width: 100px; 
height: 20px; 
margin-bottom: 7px; 
background-color: blue; 
} 

.last { 
background-color: red; 
} 

あなたは、直接選択することはできませんあなたが最後の要素$('progress-bar').children().last()children)を取得するために:last-child またはいくつかのメソッドを使用する必要があります:last

私は次の時間をコメントしたいと思います..しかし、私は十分評判を持っていません。

+1

':last'が動作します。 https://jsfiddle.net/fhfuknq5/1/ –

+1

あなたは正しいです。ありがとう! – cmprinho

関連する問題