jQuery usuń opcje z wyboru

221

Mam stronę z 5 zaznaczeniami, z których wszystkie mają nazwę klasy „ct”. Muszę usunąć opcję o wartości „X” z każdego wyboru podczas uruchamiania zdarzenia onclick. Mój kod to:

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

Gdzie się mylę?

użytkownik135498
źródło
$('select').children('option[value="X"]').remove();
Działa

Odpowiedzi:

451

Spróbuj tego:

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

Lub mówiąc bardziej zwięźle, to zadziała równie dobrze:

$(".ct option[value='X']").remove();
Andrew Hare
źródło
1
To zadziałało dla mnie. Dzięki. Jaka jest sytax, aby ograniczyć to do .ct z wybraną wartością = ''?
user135498,
2
Jest to najłatwiejsze, jeśli nie musisz znać wartości. Na przykład usunięcie pierwszej opcji $ („# affiliate”) [0] [0] .remove ();
ladieu
55
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

Lub tylko

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

Najważniejsze jest to, że findbierze ciąg selektora, karmiąc go x, szukasz elementów o nazwie x.

meder omuraliev
źródło
5
+1 lubię tę odpowiedź, myślę, że jest lepsza, ponieważ mogę przetestować „X” jako element lub część elementu valuefor<select>
shareef,
1
Użyłem tej odpowiedzi, ponieważ musiałem usunąć wszystkie opcje inne niż val = 0. Użyłem! = 0 i
działałem
31

find()bierze selektor, a nie wartość. Oznacza to, że musisz używać go w taki sam sposób, jak zwykłej funkcji jQuery ( $('selector')).

Dlatego musisz zrobić coś takiego:

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

Zobacz jQuery znajdź dokumenty.

TM.
źródło
1
znacznie lepiej w przypadku, gdy przekazujesz zmienną do append
Neurothustra
3

Działa na tagu opcji lub polu tekstowym:

$("#idname option[value='option1']").remove();
Ashu
źródło
1

jeśli lista rozwijana znajduje się w tabeli i nie masz dla niej identyfikatora, możesz użyć następującej jquery:

var select_object = purchasing_table.rows[row_index].cells[cell_index].childNodes[1];
$(select_object).find('option[value='+site_name+']').remove();
Md. Shafiqur Rahman
źródło
1

W przypadku jquery <1.8 możesz użyć:

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

aby usunąć określony zakres wybranych opcji.

jajhonrod
źródło
1

Kiedy zrobiłem tylko usunięcie, opcja pozostała w ddl w widoku, ale zniknęła w HTML (jeśli przeglądasz stronę)

$("#ddlSelectList option[value='2']").remove(); //removes the option with value = 2
$('#ddlSelectList').val('').trigger('chosen:updated'); //refreshes the drop down list
Vishav Premlall
źródło
1

Iterowanie listy i usuwanie wielu elementów za pomocą znaleziska. Odpowiedź zawiera tablicę liczb całkowitych. $ („# OneSelectList”) to lista wyboru.

$.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");
    }
});
CYoung
źródło