2011-08-10 3 views
2
jQuery(document).ready(function() { 

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

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

}); 

Je souhaite supprimer le premier élément de ma liste déroulante lorsque l'utilisateur clique dessus. Quelqu'un at-il des indications à ce sujet?Jquery supprimer un élément de la liste déroulante

+0

celui-ci a fonctionné pour moi. Pas les autres ($ ("# liste [valeur = 'elementid']"). Remove()); Merci –

Répondre

7

Vous devriez juste pouvoir utiliser:

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

Je ne l'ai pas testé, mais ont un aller et laissez-moi savoir s'il est tout bon ou non?

EDIT

Si vous voulez seulement supprimer la première option à chaque fois que vous pouvez essayer:

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

Il a besoin du rangement, mais nous espérons que cela pourrait aider.

EDIT

Si vous souhaitez supprimer la première option une seule fois que vous pourriez faire:

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; 
     } 
    } 
}); 
+0

Ayant pensé à cela, cela supprimera chaque option qui est sélectionnée , ce que j'imagine n'est pas ce que vous cherchez. Je vais mettre à jour ma réponse. –

0
$(this).remove('option:first') 

devrait faire l'affaire, si vous êtes sûr que vous voulez toujours supprimer le premier.

modifier:

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

devrait le faire sur le texte.

+0

Je voudrais supprimer basé sur le texte – JBone

0

Ou si vous voulez quelque chose de plus facile à lire, rappelez-vous que vous voulez probablement lier onFocus depuis vous voulez supprimer le premier élément de liste dès que le clic est sélectionné.

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