0

このコードがあり、最初の「オプション」が「選択してください」と表示されているため、最初の「オプション」を削除しています。とにかく、問題は、最初の「選択」に焦点を合わせると、すべての選択から最初の「オプション」が削除されることです。現在フォーカスされているものだけから削除するにはどうすればよいですか?

$(document).ready(function(){

  $('select').live('focus',function() {
   $('.firstoption').remove();
  });

});
4

2 に答える 2

0
$(document).ready(function(){
   $(document).on('focus', 'select', function() {
       $('.firstoption', this).remove();
   });
});

非推奨ではなくon()、委任されたバージョンのを使用する必要があります。live()

選択がフォーカスを受け取るたびにオプションを削除しないように、最初のオプションには必ずクラスを使用してください。

于 2012-12-07T00:10:06.317 に答える
0
$(document).ready(function(){

  $('select:first').on('focus',function() {
   $(this).children("option:first").remove();
  });

});

例: http: //jsfiddle.net/Ky6zq/2/

これは、selectがフォーカスを受け取るたびに実行されるため、毎回要素を削除し続けます。この問題を防ぐには、次を試してください。

$(document).ready(function(){

  $('select:first').one('focus',function() {
   $(this).children("option:first").remove();
  }); 
});

例: http: //jsfiddle.net/Ky6zq/1/

于 2012-12-07T00:05:46.467 に答える