javascript - 使用 jquery 向下滚动到单击按钮时选择的选项

标签 javascript jquery

我有一个这样的国家/地区列表:

screenshot

该列表非常广泛。我需要能够单击按钮将焦点移动到指定的国家/地区。

StackOverflow 中有很多线程,但没有一个起作用。例如我尝试过这个:

var code = 40;
$('#id_resource-regions').val(code).scrollTop(160);

开发人员工具中没有响应,也没有错误/警告。 请注意,该列表是使用 django 表单和模板创建的。

最佳答案

  • 选择您要查找的选项元素。
  • 使用 .offset() 获取偏移顶部位置,所选选项元素的。
  • 获取所选元素顶部的偏移量。
  • 使用.scrollTop()滚动到所需的选项。

这是一个例子

var btn = $('button')
var select = $('select')

btn.on('click', function() {
  var option = select.find("option:contains('item-30')");
  var optionTop = option.offset().top
  var selectTop = select.offset().top;
  select.scrollTop(select.scrollTop() + (optionTop - selectTop));
  option.prop('selected', true)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select name="" id="select" multiple="multiple">
  <option value="">item-1</option>
  <option value="">item-2</option>
  <option value="">item-3</option>
  <option value="">item-4</option>
  <option value="">item-5</option>
  <option value="">item-6</option>
  <option value="">item-7</option>
  <option value="">item-8</option>
  <option value="">item-9</option>
  <option value="">item-10</option>
  <option value="">item-11</option>
  <option value="">item-12</option>
  <option value="">item-13</option>
  <option value="">item-14</option>
  <option value="">item-15</option>
  <option value="">item-16</option>
  <option value="">item-17</option>
  <option value="">item-18</option>
  <option value="">item-19</option>
  <option value="">item-20</option>
  <option value="">item-21</option>
  <option value="">item-22</option>
  <option value="">item-23</option>
  <option value="">item-24</option>
  <option value="">item-25</option>
  <option value="">item-26</option>
  <option value="">item-27</option>
  <option value="">item-28</option>
  <option value="">item-29</option>
  <option value="">item-30</option>
  <option value="">item-31</option>
  <option value="">item-32</option>
  <option value="">item-33</option>
  <option value="">item-34</option>
  <option value="">item-35</option>
  <option value="">item-36</option>
  <option value="">item-37</option>
  <option value="">item-38</option>
  <option value="">item-39</option>
  <option value="">item-40</option>
</select>

<button>move to item 30</button>

关于javascript - 使用 jquery 向下滚动到单击按钮时选择的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320734/

相关文章:

javascript - 删除对象数组 javascript/react-native 中两个重复字段之一

javascript - JQuery "get"(通过 $#ID)返回一个仅存在一次的 div 数组

php - jQuery 将 php 数组更新为 javascript

javascript - 查询选择器错误: Not valid selector

javascript - 为 Bootstrap 模式编写回调函数

javascript - 在 <select> 中智能搜索 grails 和 angularjs

javascript - JQuery - 检查表中的复选框

javascript - PDF hostContainer回调

JavaScript:将 onclick 附加到 "while"循环内的链接

JQuery 和访问博客文章的嵌套输入元素的值