【发布时间】:2021-11-04 06:15:22
【问题描述】:
我有多个相同的功能toggleImage。我将它们全部写在单独的代码行中,它们都运行良好,但我确信有一种更有效的方法来编写它。
我尝试了document.querySelectorAll('#H01Overlay', '#H02Overlay', '#H03Overlay', '#H04Overlay'),但后来我的功能都停止工作了......
function toggleImage(){
document.querySelector('#H01Overlay').classList.toggle('img-hidden');
}
function toggleImage(){
document.querySelector('#H02Overlay').classList.toggle('img-hidden');
}
function toggleImage(){
document.querySelector('#H03Overlay').classList.toggle('img-hidden');
}
function toggleImage(){
document.querySelector('#H04Overlay').classList.toggle('img-hidden');
}
【问题讨论】:
-
.querySelector()和.querySelectorAll()期望 one 字符串包含一个或多个 css 选择器。'#H01Overlay', '#H02Overlay', '#H03Overlay', '#H04Overlay'是四个单独的字符串(选择器)。让它成为一个,它会工作的。 -
您能否分享足够多的“minimal reproducible example”HTML 以便我们重现您的问题?除了使用元素的
id之外,还有很多方法可以选择元素并实现您想要的,包括利用 DOM 结构使您的 JavaScript 更加 DRY。
标签: javascript html function jquery-selectors