JQuery xml按特定节点值排序

时间:2017-11-04 10:03:36

标签: javascript jquery xml sorting

我有一个带有一些数据的xml文件,想要按某个节点值排序。

这就是我所拥有的:

var output = '';

$.ajax({
        url:'file.xml',
        type: 'GET',
        dataType: "xml",
        success: function(result) {
            $(result).find('car').each(function() {
                output += '<div class="block">';
                output += '<b>Marca</b> : '+$(this).find('marca').text()+'<br>';
                output += '<b>Modelo</b> : '+$(this).find('modelo').text()+'<br>';
                output += '<b>Equipamento</b> : ';

                var arr = [];
                $(this).find('equip').children().each(function() {
                    arr.push($(this).text());
                });
                output += arr.join(', ');

                output += '</div>'

            });

            $('body').append(output);
        }
    })

我想按&#34; marca&#34;的价值排序。我怎么能这样做?

这是我的xml文件:

<cars>
    <car>
        <marca>Seat</marca>
        <modelo>Ibiza</modelo>
        <equip>
            <equip1>Vidros Electricos</equip1>
            <equip2>Fecho Central</equip2>
            <equip3>Direcção Assistida</equip3>
        </equip>
    </car>
    <car>
        <marca>Volkswagen</marca>
        <modelo>Golf</modelo>
        <equip>
            <equip1>Vidros Electricos</equip1>
            <equip2>Fecho Central</equip2>
            <equip3>Direcção Assistida</equip3>
            <equip4>ABS</equip4>
        </equip>
    </car>
    <car>
        <marca>Honda</marca>
        <modelo>Civic</modelo>
        <equip>
            <equip1>Vidros Electricos</equip1>
            <equip2>Fecho Central</equip2>
            <equip3>Direcção Assistida</equip3>
            <equip4>ABS</equip4>
        </equip>
    </car>
    (...)
</cars>

在这种情况下,订单应为 - &gt;本田 - &gt;座位 - &gt;大众。

事先提前。

1 个答案:

答案 0 :(得分:0)

您可以在jQuery集合上使用sort()

$(result).find('car').sort(function(a,b){
      return $(a).find('marca').text() > $(b).find('marca').text()
}).each(function(){
      // output sorted collection
});

DEMO