Jquery或Javascript从组合框中删除所有选项,除了一个

时间:2015-01-25 01:40:08

标签: javascript jquery html

我希望你帮我解决这个问题,我想从组合框中删除所有选项,除了值为3的选项。我有这个代码但是没有用。

<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>

4 个答案:

答案 0 :(得分:4)

您可以使用以下方式之一:

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

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

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

在这里摆弄:http://jsfiddle.net/bh3L1oen/

答案 1 :(得分:2)

此属性选择器将执行此操作

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

参考:Attribute Not Equal Selector [name!="value"]

DEMO

答案 2 :(得分:1)

当您检查文本框中的文字时,您错过了.value。你应该使用:

document.getElementById('TextBox1').value

而不只是使用:

document.getElementById('TextBox1')

答案 3 :(得分:1)

使用jQuery:

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