对象没有方法“charAt”

时间:2012-04-13 00:23:23

标签: javascript

我正在使用以下功能在Google地图上获得提升:

function getElevation(event) {
    var locations = [];
    var clickedLocation = event.latLng;
    locations.push(clickedLocation);

    var positionalRequest = {
        'locations': locations
    }

    elevator.getElevationForLocations(positionalRequest, function(results, status) {
        if(status == google.maps.ElevationStatus.OK) {
            var s = results[0].elevation;

            if(results[0]) {
                $('#elevation').html(parseInt(s).charAt(0) + ' meter');
            } else {
                alert('Inget resultat hittades');
            }
        } else {
            alert('Det gick inte att hitta höjdskillnaden på grund av följande: ' + status);
        }
    });
}

当我点击地图上的某个地方并且我不知道如何解决这个问题时,我得到了Uncaught TypeError: Object 65 has no method 'charAt'parseInt(s)打印例如44,具体取决于您在地图上单击的位置。如果我点击它显示的海洋,例如-4837,它就是那个减号,我想识别它是否存在于这个字符串中。

关于如何解决这个问题的任何想法?

提前致谢。

2 个答案:

答案 0 :(得分:3)

Numbers在原型上没有“charAt()”方法,但是字符串没有。

$('#elevation').html(('' + parseInt(s)).charAt(0) + ' meter');

parseInt()函数返回一个数字。您必须先将其显式转换为字符串。

为什么你首先试图让它成为一个数字有点神秘。

答案 1 :(得分:1)

parseInt(s).charAt(0)

您正在解析一个字符串并返回一个整数,然后尝试在整数上调用charAt,这将无法正常工作。你应该在解析它之前调用charAt。