在维基百科页面的末尾,有参考链接。我试图不显示参考列表,当单击参考链接的标题时会切换列表,例如“进一步阅读”、“注释”、“参考”等。每个参考列表都有类名“reflist”。我遇到的问题是,当我尝试在标题后找到带有 reflist 类的 div 时,
if (div.className == 'reflist')声明不起作用。可能出了什么问题?
我写了以下代码。问题是当我单击“进一步阅读”时,“参考”的“重新列表”被切换。单击“参考”也会切换相同的“重新列表”。顺便说一句,我不是专业程序员...
if (document.getElementsByClassName("reflist")) {
let x = document.getElementsByClassName("reflist");
for (let i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
}
function toggle(element) {
element.style.display = element.style.display == "none" ? "block" : "none";
}
// furtherReading is <span> element.
var furtherReading = document.getElementById("Further_reading");
// parentElement is <h2> element
furtherReading.parentElement.style.background = '#f8f9fa';
furtherReading.parentNode.style.borderBottom = 'none';
furtherReading.style.cursor = "pointer";
var references = document.getElementById("References");
references.parentElement.style.background = '#f8f9fa';
references.parentElement.style.borderBottom = 'none';
references.style.cursor = "pointer";
if (furtherReading) {
/* There may be other 'style' or 'div' elements before 'div' having className 'reflist' */
let a = furtherReading.parentElement.nextElementSibling;
while (a) {
if (a.className == 'reflist') {
break;
} else
a = a.nextElementSibling;
}
furtherReading.addEventListener("click", toggle.bind(null, a));
}
if (references) {
let b = references.parentElement.nextElementSibling;
while (b) {
if (b.className == 'reflist') {
break;
} else
b = b.nextElementSibling;
}
references.addEventListener("click", toggle.bind(null, b));
}