Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript滚动到下拉列表中的特定选项(未选中)_Javascript_Scroll_Dropdown - Fatal编程技术网

如何使用Javascript滚动到下拉列表中的特定选项(未选中)

如何使用Javascript滚动到下拉列表中的特定选项(未选中),javascript,scroll,dropdown,Javascript,Scroll,Dropdown,我想知道是否可以在下拉列表中滚动到特定选项(当前未选中)。我的意思是我有一个年份下拉列表,我想在这个下拉列表中滚动到当前年份。下拉列表中的选定项是第一个选项,即标签“选择年份”。 这是可能的,因为下拉滚动到所选的选项,在我的情况下,当前年份没有被选中。 谢谢。你当然可以。vanilla javascript中的步骤: 您需要查找当前年份,因此在下拉列表中将每年的id设置为该年份 然后查询本年度的DOM: var currentYear = new Date().getFullYear() var

我想知道是否可以在下拉列表中滚动到特定选项(当前未选中)。我的意思是我有一个年份下拉列表,我想在这个下拉列表中滚动到当前年份。下拉列表中的选定项是第一个选项,即标签“选择年份”。 这是可能的,因为下拉滚动到所选的选项,在我的情况下,当前年份没有被选中。
谢谢。

你当然可以。vanilla javascript中的步骤:

您需要查找当前年份,因此在下拉列表中将每年的id设置为该年份

然后查询本年度的DOM:

var currentYear = new Date().getFullYear()
var currentYearElement = document.getElementById(currentYear.toString())
将当前年份滚动到顶部

currentYearElement.scrollTop = 0
如果仍然有问题,请粘贴代码

通常,您还可以通过
getBoundingClientRect()
获取元素在页面上的位置,该属性包含
top
(它到底有多远)属性和其他属性
console.log
查看它们的值。然后通过执行以下操作滚动到该位置:

positions = element.getBoundingClientRect() 
document.scrollTo(0, positions.top) // arguments are x, y

否,我有下拉列表,默认情况下选择的选项是标签“选择年份”。我想当用户点击下拉列表并打开时,滚动到“2017”年。我不必使用jquery。请将前面的评论添加到问题中,以使其他人更清楚。我没有删除它。请加上。谢谢你的回答。我必须滚动到当前年份的该选项,而不是滚动到“0”。我怎么能得到这个高度呢?我今天已经试过了,但它给了我一个错误,我不能用这种方式选择选项。我添加了每个选项的
id
,并尝试这样选择:
document.getElementById('myDropdownName#2017')
它给了我一个不允许的错误选择器。getElementById接受一个id名称,所以
document.getElementById('2017')
是正确的。如果您听到的错误听起来像是与语法有关,请搜索如何使用这些函数的示例。哦,我的错误,我是这样做的:
document.querySelector(“#myDropdownName#2017”)
。如果我用值
2017
设置selected option,如果用户关闭下拉列表而不选择任何选项,我会考虑另一种解决方案,以恢复它并设置selected“Select year”