从下拉列表中删除一定数量的元素

时间:2011-04-06 12:08:51

标签: jquery

我在jQuery中遇到了问题。我有一个下拉列表包含10个元素。现在点击复选框,我想删除前五个元素。

它也可以是这样的:我想从索引0中删除元素到索引5.怎么做?

5 个答案:

答案 0 :(得分:2)

这应该按照你的要求进行

$('#checkboxID').click(function(){
  $('#dropdownID > option:lt(5)').remove();
});

演示http://jsfiddle.net/gaby/VBT42/


如果您想在选中复选框时隐藏它们,并在取消选中复选框时再次显示它们,请使用

$('#checkboxID').click(function(){
  $('#dropdownID > option:lt(5)').toggle();
});

演示http://jsfiddle.net/gaby/VBT42/2/虽然不适用于IE


对于普遍安全的删除/恢复,请使用.detach() docs方法并使用.data() docs方法存储对它们的引用

$('#checkboxID').click(function(){
  if (this.checked) {
       $('#dropdownID').data('removedOptions', $('#dropdownID > option:lt(5)').detach() );
  } else {
      var $dropdown = $('#dropdownID');
      $dropdown.prepend( $dropdown.data('removedOptions') );
  }
});

演示http://jsfiddle.net/gaby/VBT42/4/

答案 1 :(得分:2)

在复选框点击/更改处理程序中尝试这样的操作:

 $("#selectBox option:lt(5)").remove();

答案 2 :(得分:1)

也许这可行,从不自己尝试过:

$("option").each(function(index) {
if(index < 5) $(this).remove();
});

答案 3 :(得分:1)

无论如何添加

<select name="foo" id="myselect">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
</select>
<input type="checkbox" id="mycheckbox" />

这是jQuery

$('#mycheckbox').change(function() {
    $("#myselect option:lt(5)").toggle();
    if( $('#myselect option:lt(5)').is(":hidden") ){
        $("#myselect option:eq(5)").attr('selected','selected');
    }else{
        $("#myselect option:eq(0)").attr('selected','selected');
    }
});

这是我的fiddle

答案 4 :(得分:0)

$("options selector").each(function(i){if(i<5){$(this).remove();}});