Javascript 将单击事件功能应用于多个元素,包括if/else
只要我限制自己只选择一个ID,这段代码就会正确运行。问题是,当我使用GetElementsByCassName将相同的click函数应用于整个类时,我得到的样式是未定义的。。。我试过不同的方法,但都不管用。我把两个版本的代码都放在这里了。第一个有效,但第二个无效。有什么我没看见的吗 我把两个版本的代码都放在这里了。第一个有效,但第二个无效。有什么我没看见的吗 这是第一个版本,可用于单个元素:Javascript 将单击事件功能应用于多个元素,包括if/else,javascript,css,Javascript,Css,只要我限制自己只选择一个ID,这段代码就会正确运行。问题是,当我使用GetElementsByCassName将相同的click函数应用于整个类时,我得到的样式是未定义的。。。我试过不同的方法,但都不管用。我把两个版本的代码都放在这里了。第一个有效,但第二个无效。有什么我没看见的吗 我把两个版本的代码都放在这里了。第一个有效,但第二个无效。有什么我没看见的吗 这是第一个版本,可用于单个元素: var cardTitle = document.getElementById("testCard");
var cardTitle = document.getElementById("testCard");
var cardBackground = document.getElementById("testBack");
cardBackground.style.backgroundColor = "rgb(102, 102, 102)";
function toggleColor() {
if(cardBackground.style.backgroundColor == "rgb(102, 102, 102)") {
cardBackground.style.backgroundColor = "rgb(218, 164, 65)"
} else {
cardBackground.style.backgroundColor = "rgb(102, 102, 102)"
}
}
cardTitle.addEventListener("click", toggleColor);
这是一个包含不起作用的类的版本。现在if/else中的样式将是未定义的
var cardTitle = document.getElementsByClassName("custom-collapse-btn");
var cardBackground = document.getElementsByClassName("card-section");
for (i = 0; i < cardBackground.length; i++) {
cardBackground[i].style.backgroundColor = "rgb(102, 10, 102)";
}
function toggleColor() {
if(cardBackground.style.backgroundColor == "rgb(102, 102, 102)") {
cardBackground.style.backgroundColor = "rgb(218, 164, 65)"
} else {
cardBackground.style.backgroundColor = "rgb(102, 102, 102)"
}
}
for (let n = 0; n < cardTitle.length; n++) {
cardTitle[n].addEventListener("click", toggleColor);
}
var cardTitle=document.getElementsByClassName(“自定义折叠btn”);
var cardBackground=document.getElementsByClassName(“卡节”);
对于(i=0;i
我想在单击时将颜色切换到同一类的所有元素。它使用单个元素并使用getElementByID()以Id为目标工作,但当我切换到类和循环时,无论我做什么,样式都是未定义的。任何帮助都将不胜感激:)在事件侦听器中,
这将是事件的目标
function toggleColor() {
if(this.style.backgroundColor == "rgb(102, 102, 102)") {
this.style.backgroundColor = "rgb(218, 164, 65)"
} else {
this.style.backgroundColor = "rgb(102, 102, 102)"
}
}
cardBackground=document.getElementsByClassName(“卡节”)
使其成为集合,而不是元素,因此它没有style.backgroundColor
属性-您将看到抛出的错误。您可能想访问cardBackground[i].style.backgroundColor
(并使用let
在循环中声明您的i
)cardBackground
是一个集合,您必须像在for
循环中一样对其进行索引。