删除所有大于选定选项的选项

时间:2018-10-25 08:16:04

标签: jquery

aselcrumb是一个选择标签。

在更改时,我需要删除索引大于所选选项的所有选项。像这样:

$('#aselcrumb').on('change', function(){
    let i = $(this).prop('selectedIndex');
    $(this).children().gt(i).remove();
});

谢谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是gt()不是一个函数。

要解决此问题,您可以在选择项中找到选定的option,然后删除以下所有内容:

$('#aselcrumb').on('change', function() {
  $(this).find('option:selected').nextAll().remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="aselcrumb" size="5">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

或者,您可以将:gt()选择器与children()一起使用,如下所示:

$('#aselcrumb').on('change', function() {
    let i = $(this).prop('selectedIndex');
    $(this).children(':gt(' + i + ')').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="aselcrumb" size="5">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>