2016-04-28 94 views
1

我有两个选择列表,并根据选定的任何一个索引,我需要从这两个列表中删除该索引选项。从基于索引的选定列表中删除选项?

我见过使用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(); 
} 
+3

'$( '选择选项'),EQ(指数)一个.remove();' – Tushar

+0

@Tushar这似乎并不奏效,在指定索引的选项没有删除。我有没有理解你的评论? – Matthew

+0

您是否检查过您是否获得了正确的'索引'? – Tushar

回答

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

+0

这里的'index'是什么? - ** string ** – Tushar

+0

'index'应该是一个实际的数字索引。但是,既然你在选择器中使用它,jQuery真的不会在意。 –

+0

咦?你不需要连接它吗? '$('选择选项:eq('+ index +')')' – Tushar

-1

此代码应工作:

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

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

更改为'selectedProjectsField [selectedOptionIndex] .remove();'给出错误“无法获取属性'删除未定义或空引用” – Matthew

+0

@Mthethew好吧,我为您添加了第二段代码。 – lamp76

+0

@ lamp76I使用第二个选项获取“对象不支持正确或方法'删除'”。我相信这是我从我的母亲遗失的东西,但我在Rion的答案下工作,所以我必须继续前进。感谢您的帮助 – Matthew

相关问题