0

Google マーカーの xml データを取得していますが、マーカー数も必要だったので、このようにしました。

<markers>
<results count="6" />
<marker id="1" lat="48.153938" lng="17.108459" icon_type="redicon" />
<marker id="2" lat="48.152657" lng="17.127541" icon_type="redicon" />
<marker id="3" lat="48.147572" lng="17.108433" icon_type="redicon" />
<marker id="14" lat="48.153938" lng="17.108459" icon_type="redicon" />
<marker id="15" lat="48.148170" lng="17.105650" icon_type="redicon" />
<marker id="16" lat="48.148170" lng="17.105650" icon_type="redicon" />
</markers>

さて、私のマーカーは次のように投稿データを取得します。これはうまく機能します。

success: function (data, status, jqXHR) {

var markers = xml.documentElement.getElementsByTagName("marker");

for (var i = 0; i < markers.length; i++) {
//lalalalala

次に、カウントを取得したかったので、次のようにしました。

success: function (data, status, jqXHR) {

$(data).find('markers').each(function(){
        var $entry = $(this);
        var pic = $entry.find('results').attr('count');
        $("#results").html(pic);
})

var xml = jqXHR.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");


for (var i = 0; i < markers.length; i++) {
//lalala

しかし、もっと良い方法があると確信しています。最初のインスタンスで行ったことをマーカーと組み合わせて、カウントも取得する方法はありますか? コードの複雑さを減らしたいだけです。

ありがとう!

4

1 に答える 1

1

おそらく代わりに for ループで実行し、markersタグを反復処理します。

私はJSFiddleでこの例を実際に持っています: http://jsfiddle.net/3LyLR/

var markers = xml.documentElement.getElementsByTagName("markers");

for (var i = 0; i < markers.length; i++) {

var currmarker = markers[i]
var markercount = currmarker.getElementsByTagName("results")[0].getAttribute("count");
//and whatever else you want to do

}
于 2013-01-06T20:11:29.220 に答える