2012-02-23 7 views
0

私はjavascriptで非常に簡単なことをしようとしていますが、私の頭の中ではそれほど頭を上げることはできません。私はどのような形式で私はvarアドレスを渡す必要がありますか分からない。jquery要素への参照をバニラのjavascriptに渡す

$(function() { 
    $('.latlng').each(function(){ 
     var address = $(this).html(); 
     getMap(address); 
    }); 
}); 

function getMap(address) { 
    var map = new google.maps.Map(mapDiv, { 
     center: new google.maps.LatLng(address), 
     ... 
    }); 
} 

私は通常のJavaScriptにjQueryのREFを渡すとき、私はエラーを取得しています:はTypeError: '未定義のは'( 'a.position = B' を評価する)オブジェクトではありません。どんな助けもありがたい。

+2

それは 'GetMapリクエスト(アドレス)すべきではありません'? – Aaron

+1

あなたはtext()ではなく、.latlngからhtml()を取得してもよろしいですか? – supertopi

+1

jQueryは、JavaScriptの上で実行されるライブラリであり、別の言語ではありません。 JavaScriptができないことは何もしません。 jQuery関数は実際にはJavaScript関数なので、jQueryから「通常の」JavaScriptに何も渡すことはありません。 –

答えて

1

このコードを正しく読んで投稿した場合、存在しないオブジェクトgetMap()に渡り、アドレスオブジェクトを渡したいとします。これを修正するとどうなりますか?

jQueryインスタンスは他のすべてと同様に通常のjavascriptオブジェクトなので、問題はありません。

0

変数latLnggetMapに渡していますが、その値は設定されていません。

$(function() { 
    $('.latlng').each(function(){ 
     var address = $(this).html(); 
     getMap(this); 
    }); 
}); 

それとも、あなたはレディ機能は、このように見えるように、あなたが設定address変数を渡すようにしようとしている場合:

$(function() { 
    $('.latlng').each(function(){ 
     var address = $(this).html(); 
     getMap(address); 
    }); 
}); 
0

あなたの問題上部にあなたのready機能は次のようになります。 jqueryやjavascriptとは関係ありません。 間違ったデータをLatLng methodに渡しています。

あなたは緯度経度メソッドに二つのパラメータを渡す必要があります。 ...

var mapDiv = $('#mapDiv')[0], // also make sure the div is a regular dom node 
    lat = 7.1011123, 
    lng = 4.6667566; 

function getMap(address) { 
    var map = new google.maps.Map(mapDiv, { 
     center: new google.maps.LatLng(lat, lng), // you must pass in two parameters 
     ... 
    }); 
} 

テキストdiv要素からあなたのLatLng COORDSを取得しようとしているなら、あなたは山車にあなたの文字列を変換する必要があります。次のHTMLを想定

は、あなたが使用するものです。

<ul> 
    <li class="latlng">7.4142335,3.1296874</li> 
    <li class="latlng">8.4135039,-5.1256828</li> 
    <li class="latlng">-14.4101158,-5.2810335</li> 
</ul> 

その後、これはすべての.latlngリスト項目のgetMap()を実行している機能のようになります。

$('.latlng').each(function(i){ 
    var address = $(this).text(); 
    address = address.split(','); // convert your text into an array 

    // send in your lat and lng strings parsed as floats 
    getMap(
     parseFloat(address[0]), 
     parseFloat(address[1]) 
    ); 
}); 
関連する問題