如何排序$(xml).children()

How to sort $(xml).children()?

本文关键字:xml children 排序 何排序      更新时间:2023-09-26

当我调用$(xml).children()时,我如何通过tagName (nodeName)排序xml元素?

我希望我能做一些像$(xml).children().sort()但这似乎不起作用。

下面是一个例子:(http://jsfiddle.net/bdMn3/1/)

代码:

var xml = "<data><itemB>more data</itemB><itemC>yes, more data</itemC><itemA>some data</itemA></data>";
var info = $("#info");
$(xml).children().each(function () {
    var xmlnode = $(this);
    info.append(this.tagName + " - " + xmlnode.text() + "<br/>");
});
当前结果:

ITEMB - more data
ITEMC - yes, more data
ITEMA - some data

预期结果:

ITEMA - some data
ITEMB - more data
ITEMC - yes, more data

sort函数接受比较函数作为参数

$(xml).children().sort(function(a, b) { return a.tagName > b.tagName ? 1 : a.tagName < b.tagName ? -1 : 0; })