提问人:Michele 提问时间:10/29/2023 更新时间:10/29/2023 访问量:56
单击可展开的切换菜单时更改多个元素的颜色
Change multiple element color on click on an expandable toggle menu
问:
我需要一个 Javascript 函数,当我单击左上角的下拉菜单时,它允许我更改我正在开发的网站标题的某些元素的颜色。该网站是用 Wordpress 制作的,并使用 Elementor Pro。有三个元素应该改变颜色:中央徽标、右上角的两个按钮和整个标题的背景,以便它作为下拉菜单的背景是白色的。对于文本和边框,这两个按钮应成为以下颜色,#2E324D;而徽标应动态替换为已加载到网站媒体库中的蓝色变体(src:http:///prova.lamaielletta.it/wp-content/uploads/2023/10/Logo-Blu.png)。标题背景与预期的白色一样。我附上参考图像以获得最终结果。这里是网站页面的链接:https://prova.lamaielletta.it/
由于没有 Javascript 经验,我尝试独立编写第一个函数,该函数至少在单击下拉菜单按钮时更改了标题的背景颜色,使其成为菜单本身的背景白色。在编写的函数下方,使用类选择器来标识菜单按钮,为此我添加了一个单击函数,因此标题的背景颜色必须更改。
<script>
const menu = document.getElementByClassName('elementor-menu-toggle');
menu.addEventListener('click', function onClick(event) {
const header = document.getElementByClassName('elementor-element elementor-element-a58d576 e-con-full e-flex e-con e-parent');
header.style.backgroundColor = 'white';
});
</script>
为了将其插入正文,我使用了 WPCode 插件。但它没有用。我被困在这一点上
答:
2赞
AmirHossein_Khakshori
10/29/2023
#1
document.getElementsByClassName(x)
为您提供具有 X 类的所有元素,换句话说,它返回一个集合
所以你应该像这样使用它,如果你想对所有元素做一些事情(改变样式),你应该使用 for-loopmenu[0].addEventListener
评论
getElementByClassName
应该是复数! 和 es expected 它将返回一个元素列表,而不仅仅是一个。迭代它们是你的工作。如果您只需要一个元素,您可能想要使用等。getElementsByClassName
document.querySelector(".elementor-menu-toggle").addEventListener(