2016-04-28 99 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

相關問題