JavaScriptで配列からHTMLのULを使ったリストを作るユーザー定義関数を作ってみました。
配列を与えるとレベルに応じて入れ子構造になったULリストを文字列で出力します。
function array2ul(a) {
var t = "";
var exlevel = 0;
var level;
var i, j;
for (i = 0; i <= a.length; i++) {
level = i < a.length ? a[i][0] : 0;
for (j = 0; j < Math.abs(exlevel - level); j++) {
t += exlevel < level ? "<ul>" : "</ul>";
}
t += i < a.length ? "<li>" + a[i][1] + "</li>" : "";
exlevel = level;
}
return t;
}
var t = "";
var exlevel = 0;
var level;
var i, j;
for (i = 0; i <= a.length; i++) {
level = i < a.length ? a[i][0] : 0;
for (j = 0; j < Math.abs(exlevel - level); j++) {
t += exlevel < level ? "<ul>" : "</ul>";
}
t += i < a.length ? "<li>" + a[i][1] + "</li>" : "";
exlevel = level;
}
return t;
}
次のように使います。配列は[レベル,テキスト]という形で与えます。レベルは1から始めます。
var a = [
[1, "a"],
[2, "b"],
[3, "c"],
[3, "c"],
[2, "b"],
[3, "c"],
[3, "c"],
[1, "a"],
[2, "b"],
[3, "c"],
[3, "c"],
[2, "b"],
[3, "c"],
[3, "c"]
];
var ul = array2ul(a);
[1, "a"],
[2, "b"],
[3, "c"],
[3, "c"],
[2, "b"],
[3, "c"],
[3, "c"],
[1, "a"],
[2, "b"],
[3, "c"],
[3, "c"],
[2, "b"],
[3, "c"],
[3, "c"]
];
var ul = array2ul(a);
出力結果です。
コメント