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

时间:2016-04-28 14:20:49

标签: 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();
}

2 个答案:

答案 0 :(得分:1)

使用: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

答案 1 :(得分:-1)

此代码应该有效:

$('#SelectedProjects option')[index].remove();
$('#SelectedTasks option')[index].remove();

selectedProjectsField.find('option')[selectedOptionIndex].remove();
selectedTasksField.find('option')[selectedOptionIndex].remove();