javascript - 根据索引从选定列表中删除选项?

标签 javascript jquery

我有两个选择列表,并且基于任一列表的选定索引,我需要从两个列表中删除该索引处的选项。

我见过使用 remove() 函数对当前选定选项执行此操作的示例,但这仅适用于一个列表,因为另一个列表可能选择了不同的选项或根本没有选择。

只知道索引值是否可以使用 JavaScript/jQuery 来做到这一点?我已经有了计算出从哪个列表中提取索引并获取该索引值的代码。我只是还没有找到一种方法来指定删除的索引值。

根据评论开发的代码:

function RemoveCode(codeType)
{
    var selectedProjectsField = $("#SelectedProjects");
    var selectedProjectCodesField = $("#SelectedProjectCodes");
    var selectedTasksField = $("#SelectedTasks");
    var selectedTaskCodesField = $("#SelectedTaskCodes");
    var selectedOptionIndex;

    if (codeType == "Project")
    {
        selectedOptionIndex = $("#SelectedProjects :selected").index();
    }
    else
    {
        selectedOptionIndex = $("#SelectedTasks :selected").index();
    }

    alert(selectedOptionIndex);

    selectedProjectsField.eq(selectedOptionIndex).remove();
    selectedTasksField.eq(selectedOptionIndex).remove();
}

最佳答案

使用:eq()选择器

您可以使用:eq()选择器通过索引定位特定元素,然后调用 remove()将其从 DOM 中删除:

// Syntax Example: This will remove then (index)th option element 
$('select option:eq(index)').remove();

因此,在您的情况下,您只需使用以下方法之一将 selectedOptionIndex 连接到选择器以定位选择器:

// Remove a specific option of your SelectedProjects element
$('#SelectedProjects option:eq(' + selectedOptionIndex + ')').remove();

示例

您可以see an interactive example here并演示如下:

enter image description here

关于javascript - 根据索引从选定列表中删除选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917474/

相关文章:

javascript - 如何填写 Backbone 表格中的复选框

javascript - 如何将 css 应用于使用 append() 创建的元素

javascript - 如何指定 html slider 显示的时间来自动跳过它?

javascript - Jquery Datepicker 不更新 IIS 中的文本框

javascript - 使用 angular 指令和 jqLit​​e 选择第一个子图像标签

javascript - Javascript 中有 Set 数据类型的库吗?

javascript - 将 HTML <p> 从对象更改为字符串值

javascript - 如何获取文本框中以逗号分隔的多个值

jquery - 隐藏/显示 jcf 从 jquery 中选择(下拉)

javascript - 选中复选框时的 Jquery addClass