重构:通过hash(?)javascript循环
我制作了按钮,根据一些参数优化搜索重构:通过hash(?)javascript循环,javascript,Javascript,我制作了按钮,根据一些参数优化搜索 var计数=1; document.getElementById(“系列”).addEventListener(“单击”,更改文本); 函数changeText(){ 如果(计数=0){ document.getElementById(“家族”).innerHTML=“”; document.getElementById(“families”).insertAdjacentHTML(“afterbegin”,“Zeige Angefragt”); 计数=1
var计数=1;
document.getElementById(“系列”).addEventListener(“单击”,更改文本);
函数changeText(){
如果(计数=0){
document.getElementById(“家族”).innerHTML=“”;
document.getElementById(“families”).insertAdjacentHTML(“afterbegin”,“Zeige Angefragt”);
计数=1
}否则{
document.getElementById(“家族”).innerHTML=“”;
document.getElementById(“families”).insertAdjacentHTML(“afterbegin”,“Hide Angefragt”);
计数=0
}
};
document.getElementById(“families2”).addEventListener(“单击”,changeText2);
函数changeText2(){
如果(计数=0){
document.getElementById(“families2”).innerHTML=“”;
document.getElementById(“families2”).insertAdjacentHTML(“afterbegin”,“Zeige Eingetielt”);
计数=1
}否则{
document.getElementById(“families2”).innerHTML=“”;
document.getElementById(“families2”).insertAdjacentHTML(“afterbegin”,“Hide-Eingeteilt”);
计数=0
}
};
document.getElementById(“families3”).addEventListener(“单击”,changeText3);
函数changeText3(){
如果(计数=0){
document.getElementById(“families3”).innerHTML=“”;
document.getElementById(“families3”).insertAdjacentHTML(“afterbegin”,“Zeige Abgesagt”);
计数=1
}否则{
document.getElementById(“families3”).innerHTML=“”;
document.getElementById(“families3”).insertAdjacentHTML(“afterbegin”,“Hide Abgesagt”);
计数=0
}
}
这应该可以做到
function changeTextClickHandler(elementId, showText, hideText) {
return function() {
if (count == 0) {
document.getElementById(elementId).innerHTML = "";
document.getElementById(elementId).insertAdjacentHTML('afterbegin', showText);
count = 1
} else {
document.getElementById(elementId).innerHTML = "";
document.getElementById(elementId).insertAdjacentHTML('afterbegin', hideText);
count = 0
}
}
}
document.getElementById("families").addEventListener("click", changeTextClickHandler("families", "Zeige Angefragt", "Hide Angefragt"));
document.getElementById("families2").addEventListener("click", changeTextClickHandler("families2", "Zeige Eingeteilt", "Hide Eingeteilt"));
document.getElementById("families3").addEventListener("click", changeTextClickHandler("families3", "Zeige Abgesagt", "Hide Abgesagt"));
将
querySelectorAll
与属性选择器一起使用
Array.from( document.querySelectorAll( "[id^='families']") ).forEach( s => {
s.addEventListener( "click", e => {
var el = e.currentTarget;
if (count == 0) {
el.innerHTML = "";
el.insertAdjacentHTML('afterbegin', "Zeige Eingeteilt");
} else {
el.innerHTML = "";
el.insertAdjacentHTML('afterbegin', "Hide Eingeteilt");
}
count = (count + 1) % 2;
})
})
请注意,每个changeTextX()函数中使用了不同的字符串谢谢,但是对于每个id,我都有自己的文本显示在按钮上。根据每个id创建该文本的映射,然后使用相同的文本。