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?
Essaye ça:
$(".ct option[value='X']").each(function() {
$(this).remove();
});
Ou pour être plus concis, cela fonctionnera aussi bien:
$(".ct option[value='X']").remove();
$('.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
.
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.
Cela fonctionne sur les balises d'option ou les champs de texte:
$("#idname option[value='option1']").remove();
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();
Pour jquery <1.8, vous pouvez utiliser:
$('#selectedId option').slice(index1,index2).remove()
pour supprimer une plage spécifique des options de sélection.
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
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");
}
});