web-dev-qa-db-de.com

jQuery entfernt Optionen von select

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?

182
user135498

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();
376
Andrew Hare
$('.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.

45
meder omuraliev

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.

25
TM.

Es funktioniert entweder mit Optionstag oder Textfeld:

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

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();
1

Für jquery <1.8 können Sie verwenden:

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

um einen bestimmten Bereich der Auswahloptionen zu entfernen. 

1
jajhonrod

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
0
Vishav Premlall

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