2009-10-05 20 views
144

私は5つの選択肢を持つページを持っています。それらはすべてクラス名 'ct'を持っています。私はonclickイベントを実行している間、各選択項目から 'X'の値を持つオプションを削除する必要があります。私のコードはjQuery select from select

$(".ct").each(function() { 
    $(this).find('X').remove(); 
    }); 

どこが間違っていますか?

答えて

313

これを試してみてください:

$(".ct option[value='X']").each(function() { 
    $(this).remove(); 
}); 

以上の簡潔なことにするが、これは同じようにうまく動作します:

$(".ct option[value='X']").remove(); 
+1

これは私のために働いた。ありがとう。選択した値= ''でこれを.ctに制限するsytaxは何ですか? – user135498

+0

私は私の呼び出しを並べ替えてこれを解決しました。ありがとう。 – user135498

+0

私のために働くことも............ありがとう。 –

21

find()は、セレクタ、ない値をとります。つまり、通常のjQuery関数($('selector'))と同じ方法で使用する必要があります。

は、したがって、あなたはこのような何かをする必要があります。

$(this).find('[value="X"]').remove(); 

はjQueryの findドキュメントを参照してください。

+0

あなたが変数にappendを渡している場合にはるかに良い – Neurothustra

40
$('.ct option').each(function() { 
    if ($(this).val() == 'X') { 
     $(this).remove(); 
    } 
}); 

それとも

$('.ct option[value="X"]').remove(); 

主なポイントは、findxあなたがxという名前の要素を探している、それを供給することによって、セレクタ文字列を取ることです。

+4

+1私はこの答えが好きです。私は、 '