2013-07-11 40 views
0

我該如何編寫這個以在兩個地方創建元素?Javascript在兩個地方創建元素

這是我的代碼。

我試過使用document.getElementsByNamedocument.getElementsByClassName,他們都沒有工作。

HTML

<p style="display:block;" class="coords"></p> 

的Javascript

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position, coords) 
{ 
    var places = document.getElementsByClassName(coords); 
    for (var i = 0; i < places.length; i++) 
    { 
     places[i].innerHTML = "<input type='text' name='lat' id='lat' value='" + position.coords.latitude + "'>" + 
      "<input type='text' name='lon' id='lon' value='" + position.coords.longitude + "'>"; 
    } 
} 
+0

使用這些函數之一,然後使用'for'循環。 – Barmar

+0

使用document.querySelectorAll(「classname」);並做一個控制檯日誌,確保它返回一個節點數組 –

回答

2

在致電getElementsByClassName之後,您必須使用循環來更新它們中的每一個。

function showPosition(position) { 
    var places = document.getElementsByClassName("coords"); 
    for (var i = 0; i < places.length; i++) { 
     places[i].innerHTML="<input type='text' name='lat' id='lat' value='" + position.coords.latitude + "'>" + 
          "<input type='text' name='lon' id='lon' value='" + position.coords.longitude + "'>"; 
    } 
} 
+0

Barmar,它仍然不起作用。我已更新我的代碼以反映您的答案。 –

+0

我改變了我的功能來硬編碼類名。我沒有注意到該函數是地理位置代碼的回調函數,所以它不會傳遞類名稱參數。 – Barmar

+0

我的不好,謝謝你的幫助。我真的需要學習JavaScript。我有PHP下來,但由於某種原因,JavaScript仍然看起來陌生的我。再次感謝! –

0

您可能需要使用

document.getElementsByClassNamedocument.getElementsByName

在開始時沒有大寫字母

相關問題