我有一个有5个选择的页面,都有一个类名“ct”。我需要从每个选择中删除值为“X”的选项,同时运行onclick事件。我的代码是:

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

我哪里说错了?


当前回答

删除所有选项

$(".select").empty();

删除所有选项并添加一个空白选项

$(".select").empty().append(new Option('--Select--',''));

其他回答

它工作在选项标签或文本字段:

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

尝试删除选定的

$('#btn-remove').click(function () {
    $('.ct option:selected').each(function () {
        $(this).remove();
    });
});

在删除一个选项时,我最喜欢做的事情就是根本不删除它。对于那些想要删除该选项但稍后可能想重新添加它,并确保以正确的顺序重新添加它的人来说,此方法是有益的。

首先,我实际上禁用了该选项。

$("#mySelect").change(
    function() {

        $("#mySelect").children('option[value="' + $(this).val() + '"]').prop("disabled", true);

        $("#re-addOption").click(
            function() {
                $("#mySelect").children('option[value="' + howeverYouStoredTheValueHere + '"]').prop("disabled", false);
            }
        );
    }
);

然后清理,在我的CSS中,我将禁用的选项设置为隐藏,因为隐藏一个选项在某些浏览器中不起作用,但使用上述方法,这些浏览器的客户端将无法再次选择该选项。

select option[disabled] {
    display: none;
}

就我个人而言,在re-addOption元素上,我有一个data-target="value"的自定义属性,并在howeverYouStoredTheValueHere的地方,我使用$(this).attr('data-target')。

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

或者只是

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

重点是find函数接受一个选择器字符串,通过输入x,你在寻找名为x的元素。

对于jquery < 1.8,你可以使用:

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

删除选定选项的特定范围。