web-dev-qa-db-fra.com

La liste de sélection jQuery supprime toutes les options

J'ai un <select> list, qui a été remplie de plusieurs options, mais qui souhaite supprimer ces options pour recommencer.

J'utilise jQuery et j'ai essayé ce qui suit:

$("#selectId").length = 0;

Mais cela semble n'avoir aucun effet.

Une partie de mon problème est que j'utilise Firebug pour déboguer le JavaScript, mais le débogueur ne s'arrête pas au point d'arrêt, donc je ne peux pas voir ce qui se passe. Devrait-il se casser lorsque le JavaScript est dans le <head> de mon fichier HTML?

31
Richbits

cela ferait:

$('#selectId').html('');
50
David Hedlund

Juste $("#selectId option").remove(); fonctionne aussi.

28
AKX

$("#selectId").empty(); fonctionne pour moi.

La $("#selectId option").remove(); a supprimé la sélection du DOM.

Actuellement, jQuery JavaScript Library v1.7.1

11
John Forbes

Le moyen le plus rapide d'y parvenir:

$("#selectId").empty();

Voici quelques tests: http://jsperf.com/find-remove-vs-empty

Je ne prends aucun crédit pour ces tests. Voir cette question de débordement de pile: Comment supprimer toutes les options d'une boîte de sélection, puis ajouter une option et la sélectionner avec jQuery?

6
DR.
1
lance
$("#selectId").options.length = 0;

Cela ne fonctionnera pas réellement comme écrit, car il utilise un sélecteur jQuery. Cela fonctionnerait si vous utilisiez un getElementById DOM direct dans la liste de sélection. Les réponses d'AKX ou de d. Vous mettront sur la bonne voie.

1
RwwL

Essayez ceci pour la liste déroulante de sélection multiple.

$ ('# FeatureId'). Multiselect ("deselectAll", false) .multiselect ("refresh");

0
Ahsan Aftab