HTML Selection - Javascript "this.value" null

HTML Selection - Javascript "this.value" null

本文关键字:quot value null this Selection HTML Javascript      更新时间:2023-09-26

我刚刚发了一个关于这个的帖子,我以为我已经把它搞定了,但是现在我又遇到了另一个问题。

我有这样一段Javascript:

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>

我在Firefox中打开了控制台,当我单击一个选项时,它会向我抛出这个错误。

TypeError: $(...).offset(...) is null

请帮助。还有,如果这是重复的,很抱歉。我快速浏览了一下,没有看到任何相关的内容,但那可能只是我的措辞。

没关系,我是个白痴。

我需要在所有值的开头加上#。

<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>

这修复了我的问题。:)

由于您传递的是特定选项元素的value,因此您可以将选择器更改为:

var targetPosition = $(target).offset().top;

:

var targetPosition = $('option[value=' + target + ']').offset().top;