0

我有这段代码,我让它删除了我的第一个“选项”,因为第一个选项说“请选择:”。无论如何,问题是,当我专注于我的第一个“选择”时,它会从每个选择中删除第一个“选项”。如何使其仅从当前关注的对象中删除?

$(document).ready(function(){

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

});
4

2 回答 2

0
$(document).ready(function(){

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

});

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

这将在每次选择获得焦点时执行,因此您每次都将继续删除元素。为防止出现此问题,请尝试:

$(document).ready(function(){

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

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

于 2012-12-07T00:05:46.467 回答
0
$(document).ready(function(){
   $(document).on('focus', 'select', function() {
       $('.firstoption', this).remove();
   });
});

您应该使用 的委托版本on(),而不是live()已弃用的版本。

确保为第一个选项使用类,以免每次选择获得焦点时都删除选项。

于 2012-12-07T00:10:06.317 回答