2009-07-25 9 views
2

jqueryでいくつかのXMLをソートしようとしましたが、このコードは実際のXMLには影響しません。javascript/jqueryでxmlをソート

このコードに間違いがありますか?

$(xml).find('Tag').get().sort(function(a, b) { 
    return $(a).find('Name').text() < $(b).find('Name').text() ? -1 : 1; 
}); 
+0

xml変数に保持されているXMLの例を見せていただければ役に立ちますか? – AnthonyWJones

答えて

3

get関数は配列を作成して返すので、コードはこの配列をソートします。配列はどこにも参照されないので、配列は削除されます。

ソースXMLドキュメントがこの種の並べ替えを表すように変更されている可能性があります。あなたはxmlを突然変異させたいのですか、ソートされた配列にアクセスすれば十分ですか?

var sortedSet = $(xml).find('Tag').get().sort(function(a, b) { 
    var valA = $(a).find('Name').text(); 
    var valB = $(b).find('Name').text(); 
    return valA < valB ? -1 : valA == valB ? 0 : 1; 
}); 

特に、「タグ」がxmlの直接の子よりも深く見つかった場合、xmlの変更はややこしくなります。

+0

私は値にアクセスする方法の手がかりがなく、おそらく他の人も便利だと思うので、ここにこれを追加します:) sortedSet [x] .getElementsByTagName( "Name")[0] .childNodes [0] .nodeValue –

関連する問題