Hide li elements without "sep" class and add toggle button
当前为
// ==UserScript==
// @name Toggle Button for Non-sep Items
// @namespace https://jirehlov.com
// @version 0.2
// @description Hide li elements without "sep" class and add toggle button
// @author Jirehlov
// @match https://bgm.tv/subject/*
// @match https://bangumi.tv/subject/*
// @match https://chii.in/subject/*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
"use strict";
const ulElement = document.querySelector("div.subject_section ul.browserCoverMedium");
if (!ulElement) return;
const liElements = ulElement.querySelectorAll("li");
let lastSepElement = null;
let relatedItems = [];
liElements.forEach(li => {
if (li.classList.contains("sep")) {
if (relatedItems.length > 0) {
addToggleButton(lastSepElement, relatedItems);
relatedItems = [];
}
lastSepElement = li;
} else {
if (lastSepElement) {
relatedItems.push(li);
li.style.display = "none";
}
}
});
if (relatedItems.length > 0) {
addToggleButton(lastSepElement, relatedItems);
}
function addToggleButton(sepElement, relatedItems) {
const subSpan = sepElement.querySelector("span.sub");
if (!subSpan) return;
const toggleButton = document.createElement("span");
toggleButton.textContent = "[展开]";
toggleButton.style.cursor = "pointer";
toggleButton.style.color = "#2EA6FF";
toggleButton.style.marginLeft = "5px";
toggleButton.addEventListener("click", function () {
const isHidden = relatedItems[0].style.display === "none";
relatedItems.forEach(item => {
item.style.display = isHidden ? "list-item" : "none";
});
toggleButton.textContent = isHidden ? "[折叠]" : "[展开]";
});
subSpan.appendChild(toggleButton);
}
}());