检索XML数据 - 改进我的方法

时间:2013-01-06 20:09:29

标签: jquery

我正在检索谷歌标记的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

但是我确信有更好的方法。有没有办法将我在第一个实例中所做的事情与标记结合起来以获得计数?我只想减少代码的复杂性。

谢谢!

1 个答案:

答案 0 :(得分:1)

也许在for循环中执行,并迭代标记标记。

我在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

}