2014-07-26 80 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); });' –