2012-04-12 2 views
3

У меня есть следующие функции (из Elevation Service @ Google Maps API), которые выдают, например 63.00425720214844, когда я нажимаю где-то на карте я создал с Google Maps JavaScript API v3:объект не имеет метод «IndexOf»

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]) { 
       alert(s.substring(0, s.indexOf('.') - 1)); 
      } else { 
       alert('Inget resultat hittades'); 
      } 
     } else { 
      alert('Det gick inte att hitta höjdskillnaden på grund av följande: ' + status); 
     } 
    }); 
} 

Я хочу, чтобы удалить все после точки, включая точку, например, удалите .00425720214844 из 63.00425720214844, но когда я нажимаю где-то на карте, я получаю это сообщение об ошибке в консоли: Uncaught TypeError: Object 63.00425720214844 has no method 'indexOf'.

Что я сделал не так?

Заранее спасибо.

+0

Я не знаю точно, с печатает '63.00425720214844 '. – Erik

+1

http://stackoverflow.com/questions/4265879/what-does-it-mean-when-an-object-has-no-method-in-javascript – kpotehin

+0

Я уже прочитал этот вопрос, а также ответы. – Erik

ответ

5

Просто сделать JavaScript parseInt(63.00425720214844), чтобы получить 63.

+0

Большое спасибо - это сработало! : D Я буду принимать ваш ответ, как только смогу. – Erik

+1

@ErikEdgren Рад, что это сработало для вас. – Marc

7

Переменная s не содержит строку.

Вы можете превратить его в строку с помощью:

s = s.toString(); 

Если это число, вы можете просто использовать числовые функции вместо:

alert(Math.floor(s)); 
+0

Спасибо, но ответ Марка был намного проще :) – Erik

+0

Если это номер, вы также можете использовать 's.toFixed (0)'. –

+0

@ErikEdgren: Упрощение в каком направлении? Потому что 'parseInt' на два символа меньше, чем' Math.floor' ...? – Guffa

Смежные вопросы