私はさまざまなユーザー入力に基づいて生成される動的な番号の<select>
要素を持っています。私は特定の<option>
を削除しようとしていますが、それぞれの選択に対して適用されませんが、jQueryはそれ以上削除するようです。<option>
は私のコードに基づいて削除する必要があります。完全な使用例は再現するのが難しいので、私は見ているものを投稿し、これを理解するのに十分うまくいけばうれしいです。jQueryを削除する<option>タグを削除しないでください。
私が夢中ではないことを自分自身に証明するために、ループ内に<option>
を削除する代わりに、クラスを追加することにしました。ここで私が使用したものです:
<select class="my-select" id="1295453461993">
<option title="1" value="1">1</option>
<option title="2" value="2" class="option-remove">2</option>
<option title="3" value="3">3</option>
</select>
<select class="my-select" id="1295453475890">
<option title="1" value="1">1</option>
<option title="2" value="2">2</option>
<option title="3" value="3" class="option-remove">3</option>
</select>
私が起こることを探しています正確に何である:
$('.my-select').each(function(sourceIdx,sourceEl){
var id = $(sourceEl).attr('id');
var s = $('#'+id).parents('table').find('.some-input').val();
$(sourceEl).find('option[value="'+s+'"]').addClass('option-remove');
});
ここで生成されたソースです。私はすぐにループ以下、これを追加するときしかし、:私は言います
<select class="my-select" id="1295454051124">
<option title="1" value="1">1</option>
</select>
<select class="my-select" id="1295454058398">
<option title="1" value="1">1</option>
<option title="2" value="2">2</option>
</select>
:
$('.option-remove').remove();
が、私はこれが得る "待って、WHAT ?!"。
はと表示され、jQueryが2番目の選択で
<option>
を削除すると、最初の
<select>
から同じ
<option>
(値= 3)が削除されます。クールではありません。
ここで何が間違っているのでしょうか?
jQuery 1.4.4でFireFox 3.5(IEと同じ結果)でテストしています。
私はこれを再現できません([JSBin](http://jsbin.com/evomi4/edit)を参照)。どこに '$( '。option-remove')を置いたのですか?remove()'?そして、 'value =" 2 "' *と* 'value =" 3 "の両方に' $(sourceEl).find( 'option [value = "' + s + '"]') ' '。 –
うんええええええええええええええええええええええええええええええええええええええええええたい場合は、完全なHTMLを投稿することができます。 – Chandu
2番目の選択は、はるかに大きなブロックのコードのhtml()をコピーして外側のコンテナに追加することによって動的に作成されます。それがjQueryを混乱させるものであるかどうか疑問に思っていますか? –