2014-07-26 48 views
0

嗨在使用JavaScript和谷歌API定位地址时遇到了一些麻烦。谷歌地图Api的麻烦,用于定位地址

当我使用的代码,它工作正常:

var options = { 
     types: ['(cities)'], 
     componentRestrictions: { 
      country: 'fr' 
     } 
    }; 
    var input = document.getElementById('location'); 
    autocomplete = new google.maps.places.Autocomplete(input, options); 

但是,当我想用​​多输入,有许多不会忽略,这是行不通的,

我试图改变的getElementById getElementsByClassName('location')

它返回给我TypeError: undefined is not a function所有需要此自动完成脚本的元素输入都有一个名为“location”的类。

我不知道我在做什么错。我看过的所有例子只显示一个输入,所以我不知道这个脚本是否能够使用classname处理很多输入。

任何帮助将不胜感激。

+0

你在你的HTML源代码改变从ID'location'上课吗? –

+0

是的,我做到了。事实上,我删除了ID,而我把它放在类 –

+0

你使用什么浏览器? [检查兼容性](http://www.w3schools.com/jsref/met_document_getelementsbyclassname.asp)与该功能/ –

回答

1

自动完成期望作为DOMNode的第一个参数,但getElementsByClassName返回一个DOMNodeList。

您必须迭代此节点列表的项目并应用​​3210。

使用本机JS/DOM:

var inputs = document.getElementsByClassName('someClass'); 

    for(var i = 0; i < inputs.length; ++i){ 
     new google.maps.places.Autocomplete(inputs[i], options); 
    } 

使用jQuery:

 $('.someClass').each(function(){ 
     new google.maps.places.Autocomplete(this, options); 
    }); 
+0

你有一个关于如何做到这一点的教程,因为这是第一次我正在尝试使用JavaScript。我也试过在jquery $('。location')但我有相同的结果 –

+0

我已经添加了代码 –

+0

我试过了,但没有工作'var input = $('。google'); jQuery.each(input,function(){ autocomplete = new google.maps.places.Autocomplete(input,options); });' –