HTML选择-Javascript“;这是“价值观”;无效的
我刚刚发了一篇关于这个的帖子,我想我已经让它工作了,但现在我遇到了另一个问题 我有一段Javascript代码:HTML选择-Javascript“;这是“价值观”;无效的,javascript,jquery,html,Javascript,Jquery,Html,我刚刚发了一篇关于这个的帖子,我想我已经让它工作了,但现在我遇到了另一个问题 我有一段Javascript代码: function slideTo(target){ var targetPosition = $(target).offset().top; $('html,body').animate({ scrollTop: targetPosition}, 'slow'); } </script> 请帮忙。 此外,如果这是一个重复的对不起。我快速看了一眼,看不到任
function slideTo(target){
var targetPosition = $(target).offset().top;
$('html,body').animate({ scrollTop: targetPosition}, 'slow');
}
</script>
请帮忙。
此外,如果这是一个重复的对不起。我快速看了一眼,看不到任何似乎相关的东西,但那可能只是我的措辞。别担心,我是个白痴 我需要在我所有价值观的开头加上#
<select onChange="slideTo(this.value)">
<option value="#blank">blank</option>
<option value="#test">TestPi</option>
<option value="#banana">BananaPie</option>
<option value="#chicken">ChickenPie</option>
</select>
空白的
TestPi
班纳皮
鸡派
这解决了我的问题。:) 由于您正在传递特定选项元素的
值
,因此您可以从以下位置更改选择器:
var targetPosition = $(target).offset().top;
为此:
var targetPosition = $('option[value=' + target + ']').offset().top;
我假设您希望通过元素的ID获取元素,在您的示例中,您缺少
。。所以您应该执行var targetPosition=$(“#”+jQuery(this.val()).offset().top代码>。您不需要将值作为参数传递,因为您可以使用jQuery(this).val()
@Mindastic从函数内部获取该值。当您使用onchange=slideTo()
调用函数时,元素不会作为this
传递。是的,您是对的@Barmar。我在考虑用jQuery绑定事件处理程序。我将编辑我的答案。谢谢你指出。好吧,我现在无法编辑评论:(@Mindastic为什么你不发布一个实际的答案?当脚本中的一个简单更改可以为你处理时,为什么你会这样做。改为var targetPosition=$(“#”+target).offset()。top;
var targetPosition = $(target).offset().top;
var targetPosition = $('option[value=' + target + ']').offset().top;