jQuery видалити параметри з вибору


221

У мене є сторінка з 5 виборами, у яких усі мають назву класу 'ct'. Мені потрібно видалити параметр зі значенням "X" з кожного вибору під час запуску події onclick. Мій код:

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

Де я помиляюся?


Це добре працює: $('select').children('option[value="X"]').remove();
劉鎮 瑲

Відповіді:


451

Спробуйте це:

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

Або якщо бути більш стислим, це спрацює так само добре:

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

1
Це працювало для мене. Дякую. Що таке ситаксис, щоб обмежити це .ct із вибраним значенням = ''?
user135498

2
Це найпростіше, якщо вам не потрібно знати значення. Наприклад, видалення першого параметра $ ("# філія") [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 і працював як шарм :)
Lakshman Pilaka

31

find()приймає селектор, а не значення. Це означає, що вам потрібно використовувати його так само, як і звичайну функцію jQuery ( $('selector')).

Тому вам потрібно зробити щось подібне:

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

Дивіться документи пошуку jQuery .


1
набагато краще в тому випадку, коли ви передаєте змінну до
додатку

3

Він працює або з тегом опцій, або з текстовим полем:

$("#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.