jQuery удалить параметры из select


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

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

где я ошибаюсь?

7 172

7 ответов:

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

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

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

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

или просто

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

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

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

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

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

смотрите jQuery найти docs.

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

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

для jquery

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

для удаления определенного диапазона выбранных параметров.

он работает как на теге опции, так и на текстовом поле:

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

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

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