2011-07-28 16 views
1

私は、私がselectからすべての要素を削除するWebアプリケーションを開発して使用しています:要素IDの代わりに "this"キーワードを使用するにはどうすればよいですか?

$('#State option').each(function(i, option){ $(option).remove(); }); 

は、どのように私は「#State」の代わりにthisキーワードを使用することができますか?

OPコメントより:
私は複数のドロップダウン要素を持っています。フォーカスすると、現在選択されているドロップダウンからすべての要素を削除する1つの関数を呼び出さなければなりません。

+3

なぜ$( "#状態オプション")だけでなく、remove() '? –

+0

合意。 'this'を使用する場所を理解したい場合は、オプションではなく関数のセレクタにあるだけですが、選択したオプションが既に含まれているjqueryオブジェクトで呼び出す方が簡単です。 – kinakuta

+0

まあ、代わりに州の私はこのキーワードを使用したい –

答えて

0

私は要素ダウン複数のドロップを持っています。フォーカスするときは、現在選択されているドロップダウンからすべての要素を削除する関数を呼び出す必要があります。

それは良いUIデザインだが、それが必要だと仮定した場合、私は知らない

...

//--- When any select is focused, this will remove all options from just that select. 
$('select'). bind ("focus", function() { 
    $(this).find ('option').remove(); 
} 
0

私はあなたが尋ねようとしていることを知っていると思います。あなたはあなたのページのすべてのドロップダウンリストのすべての要素を削除したいですか?その場合は、ちょうどこのコードを使用します

$('select option').remove(); 

あなたは非常に反復にドロップダウンリストを参照するために$(this)を使用することができますが、それはあなたが達成しようとしているものには不要です。以下は$(this)を使用して、効率的な方法であると繰り返し:

$('select').each(function() { $(this).find('option').remove(); }) 
0

代替解釈:私は#」の代わりにこのキーワードを使用するにはどうすればよい

状態 '

ここでは、あなたがすでにコンテキスト内にいると仮定しています。thisが参照していますid = StateでDOM要素に渡します。ここで

$('#State option').each(function(i, option){ $(option).remove(); }); 

は、我々はjQuery()jQuery(selector, [context])署名を活用:その場合は、

$('option', this).each(function(i, option){ $(option).remove(); }); 

は以下と等価になります。

関連する問題