Ich habe eine Seite mit 5 selects, die alle einen Klassennamen 'ct' haben. Ich muss die Option mit dem Wert 'X' aus jedem select entfernen, während ich ein onclick -Ereignis ausführt. Mein Code lautet:
$(".ct").each(function() {
$(this).find('X').remove();
});
Wohin gehe ich falsch?
Versuche dies:
$(".ct option[value='X']").each(function() {
$(this).remove();
});
Oder, um es knapper zu machen, das wird genauso gut funktionieren:
$(".ct option[value='X']").remove();
$('.ct option').each(function() {
if ( $(this).val() == 'X' ) {
$(this).remove();
}
});
Oder nur
$('.ct option[value="X"]').remove();
Der Hauptpunkt ist, dass find
eine Auswahlzeichenfolge benötigt, indem Sie x
eingeben, um nach Elementen mit dem Namen x
zu suchen.
find()
nimmt einen Selektor und keinen Wert. Dies bedeutet, dass Sie es auf die gleiche Weise verwenden müssen, wie Sie die normale jQuery-Funktion ($('selector')
) verwenden würden.
Deshalb musst du so etwas tun:
$(this).find('[value="X"]').remove();
Siehe jQuery find docs.
Es funktioniert entweder mit Optionstag oder Textfeld:
$("#idname option[value='option1']").remove();
wenn sich Ihr Dropdown in einer Tabelle befindet und Sie keine ID dafür haben, können Sie folgende Jquery verwenden:
var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
Für jquery <1.8 können Sie verwenden:
$('#selectedId option').slice(index1,index2).remove()
um einen bestimmten Bereich der Auswahloptionen zu entfernen.
Wenn ich nur ein Entfernen entfernte, blieb die Option in der ddl in der Ansicht, war aber in der HTML weg (wenn Sie die Seite inspizieren)
$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list
Iterieren einer Liste und Entfernen mehrerer Elemente mithilfe einer Suche. Die Antwort enthält ein Array von Ganzzahlen. $ ('# OneSelectList') ist eine Auswahlliste.
$.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");
}
});