Skip to content

Instantly share code, notes, and snippets.

@Ran350
Last active October 24, 2023 07:59
Show Gist options
  • Save Ran350/c5ca3c16f5a64fc7c7b8fe31342abbb1 to your computer and use it in GitHub Desktop.
Save Ran350/c5ca3c16f5a64fc7c7b8fe31342abbb1 to your computer and use it in GitHub Desktop.
"履修状況確認(受講登録内容・成績一覧)ページ"での実行で各成績の個数を表示するブックマークレット(※P/F評価の場合はPをカウントしません)
// ブックマークレット
// ↓の一行をブックマークのURLにコピペしてね
javascript:(function(){const grades=[{name:"A+",credit1:0,credit2:0},{name:"A",credit1:0,credit2:0},{name:"B",credit1:0,credit2:0},{name:"C",credit1:0,credit2:0},{name:"F",credit1:0,credit2:0},];const creditsElms=[...document.querySelectorAll("#content>div.result_list>div.result_list>table>tbody>tr>td:nth-child(5)"),];const gradesElms=[...document.querySelectorAll("#content>div.result_list>div.result_list>table>tbody>tr>td:nth-child(6)"),];for(let i=0;i<gradesElms.length;i++){if(creditsElms[i].textContent==="1"){grades.map((grade)=>{if(gradesElms[i].textContent===grade.name)grade.credit1++;});}if(creditsElms[i].textContent==="2"){grades.map((grade)=>{if(gradesElms[i].textContent===grade.name)grade.credit2++;});}}const outs=grades.map((grade)=>{return`${grade.name} 1単位: ${grade.credit1} 2単位: ${grade.credit2}`;});alert(outs.join("\n"));})();
// 原文
(function () {
const grades = [
{ name: "A+", credit1: 0, credit2: 0 },
{ name: "A", credit1: 0, credit2: 0 },
{ name: "B", credit1: 0, credit2: 0 },
{ name: "C", credit1: 0, credit2: 0 },
{ name: "F", credit1: 0, credit2: 0 },
];
const creditsElms = [
...document.querySelectorAll(
"#content > div.result_list > div.result_list > table > tbody > tr > td:nth-child(5)"
),
];
const gradesElms = [
...document.querySelectorAll(
"#content > div.result_list > div.result_list > table > tbody > tr > td:nth-child(6)"
),
];
for (let i = 0; i < gradesElms.length; i++) {
// 1単位
if (creditsElms[i].textContent === "1") {
grades.map((grade) => {
if (gradesElms[i].textContent === grade.name) grade.credit1++;
});
}
// 2単位
if (creditsElms[i].textContent === "2") {
grades.map((grade) => {
if (gradesElms[i].textContent === grade.name) grade.credit2++;
});
}
}
const outs = grades.map((grade) => {
return `${grade.name} 1単位:${grade.credit1} 2単位:${grade.credit2}`;
});
const sum =
grades.map(g=>g.credit1).reduce((sum, element) => sum + element, 0) +
grades.map(g=>g.credit2).reduce((sum, element) => sum + 2*element, 0);
outs.push("履修合計: " + sum);
alert(outs.join("\n"));
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment