2016-04-29 2 views
0

JavaScriptでリンクを生成するためにforステートメントを使用するJavaScriptファイルと、クリックイベントを待機するEventlistnerがあります。私は私のリンクからHTMLの関数に接続している私のリンクを生成した特定のリンクをクリックするとリンクが必要になりますのタグを変数に追加します。JavaScriptで検索した後に関数にリンクされた属性タグの要素を取得する

<script> 
    or (var j = 0; j < results.length; j++) { 

      if (parseInt(results[j].distance.text) <800){ 


      geocoder.geocode({'address': destinationList[j]}, 
       showGeocodedAddressOnMap(true)); 

      outputDiv.innerHTML += '<a id ="cl" href="#">' +   results[j].distance.text + ' to ' + destinationList[j] + 
       '. Destination is ' + results[j].duration.text +' From '+ originList[i] + '</a><br>'; 

      } 
      } 


    var onChangeHandler = function() { 
     display(); 
    } 


    //EVENT LISTENER FOR LINK CLICK 
    document.getElementById('output').addEventListener('click',  onChangeHandler); 


    function Display(){ 

    var doc; 
    doc = document.getElementbyId('cl').innerHTML; 
    console.log(doc); 



    } 

    </script> 
+0

JavaScriptとDOMは、大文字と小文字が区別されます。したがって、 'document.getElementbyid'は動作しません。それは 'document.getElementById'である必要があります。そして、それが "ElementById"ではなく "getElementById"であることに注意してください... – Robusto

答えて

0

あなたはそれを作成するときには、aonClick属性を設定することができます。

for(var j = 0; j < results.length; j++) 
{ 
    if(parseInt(results[j].distance.text) < 800) 
    { 
     geocoder.geocode({ 'address' : destinationList[j] }, showGeocodedAddressOnMap(true)); 
     outputDiv.innerHTML += '<a id ="cl" href="#" onclick="onChangeHandler(' + j + '); return false">' + results[j].distance.text + ' to ' + destinationList[j] + '. Destination is ' + results[j].duration.text +' From '+ originList[i] + '</a>.<br>'; 
    } 
} 

function onChangeHandler (i) 
{ 
    alert(i); 
} 

あなたはあまりにも追加のパラメータを渡すことができます。

for(var j = 0; j < results.length; j++) 
{ 
    if(parseInt(results[j].distance.text) < 800) 
    { 
     geocoder.geocode({ 'address' : destinationList[j] }, showGeocodedAddressOnMap(true)); 
     outputDiv.innerHTML += '<a id ="cl" href="#" onclick="onChangeHandler(' + j + ', ' + results[j] + '); return false">' + results[j].distance.text + ' to ' + destinationList[j] + '. Destination is ' + results[j].duration.text +' From '+ originList[i] + '</a>.<br>'; 
    } 
} 

var onChangeHandler = function(i, data) 
{ 
    alert(data.distance.text); 
} 
+0

もし私がonclick関数に渡す必要があるjavascriptの変数を持っていたら、それをhtmlで表示せずに関数に渡す方法は? – user1664433

+0

そのためには、無名関数を使用する必要があります。 'document.getElementById(" ... ")。addEventListener(" click "、function(){functionYouWantToCall(varialbeYouWantToPass);});'。 – IMTheNachoMan