我有两个选择列表,基于所选索引,我需要从两个列表中删除该索引处的选项。
我已经看到使用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();
}
答案 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并在下面演示:
答案 1 :(得分:-1)
此代码应该有效:
$('#SelectedProjects option')[index].remove();
$('#SelectedTasks option')[index].remove();
或
selectedProjectsField.find('option')[selectedOptionIndex].remove();
selectedTasksField.find('option')[selectedOptionIndex].remove();