JQuery удалить параметры из выбора


222

У меня есть страница с 5 выборами, которые все имеют имя класса 'ct'. Мне нужно удалить опцию со значением «X» из каждого выбора во время запуска события onclick. Мой код:

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

Куда я иду не так?


Это хорошо работает: $('select').children('option[value="X"]').remove();
瑲 瑲

Ответы:


453

Попробуй это:

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

Или, если быть более кратким, это будет работать так же хорошо:

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

1
Это сработало для меня. Спасибо. Какой синтаксис ограничивает это .ct с выбранным значением = ''?
user135498

2
Это проще всего, если вам не нужно знать значение. Например, удаление первой опции $ ("# affiliate") [0] [0] .remove ();
Ladieu

55
$('.ct option').each(function() {
    if ( $(this).val() == 'X' ) {
        $(this).remove();
    }
});

Или просто

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

Суть в том, что findпринимает строку селектора, передавая ее, xвы ищете именованные элементы x.


5
+1 я , как этот ответ я думаю , что его лучше , потому что я могу проверить «X» , как , например или часть valueдля <select>элемента
Шарифа

1
Я использовал этот ответ, так как мне пришлось удалить все опции, кроме val = 0. Я использовал! = 0 и работал как шарм :)
Лакшман Пилака

31

find()принимает селектор, а не значение. Это означает, что вам нужно использовать его так же, как и обычную функцию jQuery ($('selector') ).

Поэтому вам нужно сделать что-то вроде этого:

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

Посмотрите jQuery найти документы.


1
намного лучше в случае, когда вы передаете переменную в
аппенди

3

Работает либо с тегом option, либо с текстовым полем:

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

1

если ваш выпадающий список находится в таблице и у вас нет идентификатора для него, вы можете использовать следующий jquery:

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

1

Для jquery <1.8 вы можете использовать:

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

удалить определенный диапазон выбранных опций.


1

Когда я только что удалил, опция оставалась в ddl в представлении, но пропала в html (если вы просматриваете страницу)

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

1

Перебор списка и удаление нескольких элементов с помощью поиска. Ответ содержит массив целых чисел. $ ('# OneSelectList') - это список выбора.

$.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");
    }
});
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.