2015-01-25 5 views
1

Я хочу, чтобы вы мне помогли, пожалуйста, я хотел бы удалить все варианты из combobox, кроме одного со значением = 3. У меня есть этот код, но он не работает.JQuery или Javascript удалить из combobox все опции, кроме одного

<select id="Select1" name="Select1"> 
    <option selected value="1">Pink</option> 
    <option value="2">Black</option> 
    <option value="3">Green</option> 
    <option value="4">Blue</option> 
    <option value="5">White</option> 
</select> 


<input type="button" onclick="myFunction()" value="Remove option"> 

<script> 
    function myFunction() { 
     var select=document.getElementById('Select1'); 

     for (i=0;i<select.length; i++) { 
      if (select.options[i].value!=document.getElementById('TextBox1')) { 
      select.remove(i); 
      } 
     } 
    } 
</script> 
+0

Это немного неясно нам, что вы пытаетесь сделать ... чтобы итерации по каждому элементу выбора или только к параметрам .... –

ответ

4

Вы можете использовать один из следующих способов:

$("#Select1 option").not("[value='3']").remove(); 

$("#Select1 option:not([value='3'])").remove(); 

$("#Select1 option[value!='3']").remove(); 

скрипка здесь: http://jsfiddle.net/bh3L1oen/

+0

Однако OP выполняет итерацию по каждому элементу select, поэтому я буду идти с каждым() метод ... –

+0

@BhojendraNepal он получает выбор по своему id, идентификатор должен быть уникальным, поэтому должно быть только 1 select – BeNdErR

+0

, это ошибка OP, но посмотрите на его код ... –

1

Вы не нашли .value, когда вы проверяете текст в текстовом поле. Вы должны использовать:

document.getElementById('TextBox1').value 

вместо использования:

document.getElementById('TextBox1') 
+0

На самом деле, это должен быть лучший ответ, поскольку у OP есть javascript code ins tead jQuery .... но подождите ... как насчет 'select.options [i]', который использует OP .... –

1

Использование JQuery:

$('select').each(function(){ 
    if($('option',this).attr('value') != '3'){ 
    $('option',this).remove(); 
    } 
}); 
2

Этот селектор атрибута будет делать это

$('#Select1 option[value!=3]').remove() 

Ссылка: Attribute Not Equal Selector [name!="value"]

DEMO

+0

Вы можете просто использовать 'select' вместо выбора конкретного идентификатора select ... –

+1

@BhojendraNepal OP нацеливается на идентификатор, хотя, и состояния хотят определенного элемента – charlietfl

Смежные вопросы