使用javascript和google 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 :(得分:1)
Autocomplete期望作为DOMNode的第一个参数,但getElementsByClassName
返回DOMNodeList。
您必须遍历此Nodelist的项目并应用Autocomplete
。
使用原生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);
});