Jquery从下拉列表中删除项目

时间:2011-08-10 21:52:33

标签: jquery drop-down-menu

jQuery(document).ready(function () { 

  $lstAccountType = $('select[id*="account_type"]');

  $lstAccountType.change(function () {
    $(this).remove('option[text="select one"]')
  });

});

我想在点击时删除下拉列表中的第一个元素。有没有人对此有任何指示?

3 个答案:

答案 0 :(得分:7)

你应该可以使用:

$lstAccountType.change(function () {
    $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove();
});

我没有对此进行过测试,但是如果它有任何好处,我可以告诉我吗?

修改

如果您只想在每次尝试时删除第一个选项:

$lstAccountType.change(function () {
    if ($lstAccountType.find("option:first").attr("value") == $lstAccountType.val()) {  
        $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove();
    }
});

它需要一些整理,但希望这可能有所帮助。

修改

如果您只想删除第一个选项:

var first_option_removed = false;
$lstAccountType.change(function () {
    if (!first_option_removed) {
        if ($lstAccountType.find("option:first").attr("value") == $lstAccountType.val()) {  
            $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove();
            first_option_removed = true;
        }
    }
});

答案 1 :(得分:0)

$(this).remove('option:first')
如果您确定要始终删除第一个,那么

应该可以解决问题。

编辑:

$(this).remove('option:contains(select one)');

应该在文字上进行。

答案 2 :(得分:0)

或者如果您想要更容易阅读的内容,请记住您可能希望绑定onFocus,因为您希望在单击选择后删除第一个列表项。< / p>

$('#mySelectId').bind('focus' function(){
   var listItems = $('#mySelect li');
   if(listItems.length > 0){
      $(listItems[0]).remove();
   }
});