-1

私のウェブページのアイテムを並べ替えるこのフィドルがあります。console.log の結果を確認すると、動作していることがわかります。結果を実際の Web ページに表示する方法がわかりません。アイテムは順番に並べ替えられています。

http://jsfiddle.net/AQFFq/21/

function myFunction() {
var elements = [].slice.call(document.getElementsByClassName("price"));
elements.sort(function(a, b) {
return parseFloat(b.innerHTML.substring(1)) - parseFloat(a.innerHTML.substring(1));
});
for (var i = 0; i < elements.length; i++)
elements[i].parentNode.appendChild(elements[i]);
console.log(elements);
}

ありがとう。

4

1 に答える 1

0

コメントで述べたように、並べ替えにはいくつかの問題があります。1 for ループの周りに {} がないため、1 回だけ実行されます。price2を独自の親ノードに追加していますが、親ノードは元の順序のままであるため、関数は何もしません。あなたがする必要があるのは、並べ替えたい要素全体である親ノードを選択し、それを並べ替え可能なアイテムに共通する最初の親ノードに追加することです。これは、私が機能しているフィドルpsを意味するためのjsfiddleです。結果が実際には元のページと異なるように、並べ替え関数でaとbを切り替えました。

于 2015-12-29T17:22:23.283 に答える