web-dev-qa-db-fra.com

jQuery supprimer des options de sélectionner

J'ai une page avec 5 sélections qui ont toutes un nom de classe 'ct'. Je dois supprimer l'option avec la valeur 'X' de chaque sélection lors de l'exécution d'un événement onclick. Mon code est:

$(".ct").each(function() {
    $(this).find('X').remove();
   });

Où vais-je mal?

182
user135498

Essaye ça:

$(".ct option[value='X']").each(function() {
    $(this).remove();
});

Ou pour être plus concis, cela fonctionnera aussi bien:

$(".ct option[value='X']").remove();
376
Andrew Hare
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

Ou juste

$('.ct option[value="X"]').remove();

Le point principal est que find prend une chaîne de sélection, en la nourrissant x, vous recherchez des éléments nommés x.

45
meder omuraliev

find() prend un sélecteur, pas une valeur. Cela signifie que vous devez l’utiliser de la même manière que la fonction jQuery habituelle ($('selector')).

Par conséquent, vous devez faire quelque chose comme ceci:

$(this).find('[value="X"]').remove();

Voir le jQuery find docs.

25
TM.

Cela fonctionne sur les balises d'option ou les champs de texte:

$("#idname option[value='option1']").remove();
1
Ashu

si votre liste déroulante est dans une table et que vous n'avez pas d'identifiant, vous pouvez utiliser le jQuery suivant:

var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
1

Pour jquery <1.8, vous pouvez utiliser:

$('#selectedId option').slice(index1,index2).remove()

pour supprimer une plage spécifique des options de sélection. 

1
jajhonrod

Quand je viens de supprimer, l’option restait dans le ddl de la vue, mais disparaissait dans le html (si vous inspectez la page)

$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list
0
Vishav Premlall

Itération d'une liste et suppression de plusieurs éléments à l'aide d'une recherche. La réponse contient un tableau d'entiers. $ ('# OneSelectList') est une liste de sélection.

$.ajax({
    url: "Controller/Action",
    type: "GET",
    success: function (response) {
        // Take out excluded years.
        $.each(response, function (j, responseYear) {
            $('#OneSelectList').find('[value="' + responseYear + '"]').remove();
        });
    },
    error: function (response) {
        console.log("Error");
    }
});
0
CYoung