HTML选择 - Javascript" this.value"空值

时间:2015-07-11 18:40:54

标签: javascript jquery html

我刚刚发了一篇关于此的帖子,我认为我已经开始工作,但现在我遇到了另一个问题。

我有这个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

请帮忙。 此外,对不起,如果这是重复。我快速看了一下,看不出任何看似相关的东西,但这可能只是我的措辞。

2 个答案:

答案 0 :(得分:0)

没关系,我是个白痴。

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

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

这解决了我的问题。 :)

答案 1 :(得分:0)

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

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

对此:

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