Javascriptリストの並べ替えに問題があります。テキスト領域が塗りつぶされ、グレーディングが選択されたときに作成されるリスト。次のようになります。
var element = '<li class="lista">' + filmen + '<span class="betyg">' + changeNumber(grade) + '</span></li>';
film_list.append(element);
また、span要素の数値を星に変換する関数もあります。次のようになります。
function changeNumber(number) {
var stars = "";
for(var i = 0; i < number; i++) {
stars += "*";
}
return stars;
}
問題は、リストを並べ替えるボタンがグレードに応じて高と低の2つあり、ボタンを押すとリストが正しく並べ替えられることです。しかし、星は消え、数字は再び上がります。並べ替えボタンから関数を呼び出そうとしましたが、機能changeNumber
しないようです。引数として何を使うべきかわかりません。私が何をすべきかについて何か提案はありますか?
並べ替え関数は次のようになります。
var button_high = $('#high');
var betyg_array = new Array();
button_high.click(function () {
$list = $("#filmerna ul");
$("#filmerna ul li")
.remove();
betyg_array.sort(function (x, y) {
return y[1] - x[1]
});
$.each(betyg_array, function () {
$nyFilm = $("<li />");
$nyFilm.attr("class", "lista")
$nyFilm.text($(this)[0]);
$nyBetyg = $("<span />");
$nyBetyg.attr("class", "betyg");
$nyBetyg.text($(this)[1]);
$nyBetyg.appendTo($nyFilm);
$nyFilm.appendTo($list);
changeNumber();
});
});