2010-01-14 1 views
2

Я вижу несколько примеров удаления элемента из раскрывающегося списка выбора по значению элементов (например, this question), но есть ли способ удалить элемент из раскрывающегося списка выбора, если все, что я знаю, является отображаемым текстом?есть решение jquery для удаления элемента из выпадающего списка по отображению текста

ответ

8

Попробуйте это:

$("#Select>option:contains(yourtext)").remove(); 

Испытано локально, и она работает. Точный фрагмент кода отношение ко мне было:

<select id="FundManager1" class="FundManagerSelect"> 
    <option>Fund Manager 1</option> 
    <option>Fund Manager 2</option> 
    <option>Fund Manager 3</option> 
</select> 

Тогда JQuery:

$(document).ready(function(){ 
    alert($("#FundManager1>option").length); //alerts '3' 
    $("#FundManager1>option:contains(1)").remove(); 
    alert($("#FundManager1>option").length); //alerts '2' 
}); 

Вы всегда можете поставить его в функцию:

function RemoveOption(SelectId, TextVal) { 
    $("#" + SelectId + ">option:contains(" + TextVal + ")").remove(); 
} 

RemoveOption("FundManager1", "1"); 

Дальнейшее редактирование для класса Selector Вопрос:

Для селектора классов замените '#' с символом '.' как и следовало ожидать:

$(".YourSelectClass>option:contains(yourtext)").remove(); 

И как это просто выбор, вы можете ускорить его путем объединения с селектором элемента:

$("select.YourSelectClass>option:contains(yourtext)").remove(); 
+0

Довольно уверен, что вам нужны цитаты вокруг вашего текста: '' ваш текст ', если только 'yourtext' не является переменной, о которой вы, вероятно, должны прояснить. –

+0

@ Dominic Rodger. Нет, он работает так, как есть. Пробовал и с местами. –

+0

есть все равно, чтобы это сделать как селектор классов, поэтому я могу удалить элемент из нескольких выборок сразу? – leora

4

Я полагаю, вы могли бы перебрать их:

$('select option').each(function() 
{ 
    if ($(this).text() == 'something') 
    { 
     $(this).remove(); 
    } 
}); 

Редактировать: Ответ Джеймса Висмена более краткий, но это может быть проще, если у опции есть неудобные символы, которые в противном случае мешали бы синтаксис селектора.

+0

+1 - Согласен. Тем не менее я не воспользовался слишком многими из них :-) –

+0

есть ли способ сделать это как селектор классов, поэтому он применяется к нескольким выборкам с одним набором кода? – leora