Javascript 我在'class'和'id'属性方面遇到问题。将'id'与`<;img>;`代码可以正常工作。但是使用'class'它';它不工作了
对于站点,我在Javascript 我在'class'和'id'属性方面遇到问题。将'id'与`<;img>;`代码可以正常工作。但是使用'class'它';它不工作了,javascript,html,Javascript,Html,对于站点,我在 var img_数组=['images/1.jpg','images/12.jpeg']; i=0; 函数myFunction(){ i++; if(i==img_array.length-1){ document.getElementsByClassName(“test1”).src=img_数组[i]; document.getElementsByClassName(“test2”).style.opacity=“0”; document.getElementsByClass
var img_数组=['images/1.jpg','images/12.jpeg'];
i=0;
函数myFunction(){
i++;
if(i==img_array.length-1){
document.getElementsByClassName(“test1”).src=img_数组[i];
document.getElementsByClassName(“test2”).style.opacity=“0”;
document.getElementsByClassName(“test2”).style.visibility=“hidden”;
i=-1;
}否则{
document.getElementsByClassName(“test1”).src=img_数组[i];
document.getElementsByClassName(“test2”).style.opacity=“1”;
document.getElementsByClassName(“test2”).style.visibility=“visible”;
}
}
GetElementsByCassName返回一个数组
你需要做什么
<body>
<img class="test1" width="300" height="400" onclick="myFunction()" src="images/1.jpg">
<img class="test2" width="300" height="400" src="images/12.jpeg">
<script>
var img_array = ['images/1.jpg', 'images/12.jpeg'];
i = 0;
function myFunction() {
i++;
if (i == img_array.length - 1) {
document.getElementsByClassName("test1").src = img_array[i];
document.getElementsByClassName("test2").style.opacity = "0";
document.getElementsByClassName("test2").style.visibility = "hidden";
i = -1;
} else {
document.getElementsByClassName("test1").src = img_array[i];
document.getElementsByClassName("test2").style.opacity = "1";
document.getElementsByClassName("test2").style.visibility = "visible";
}
}
</script>
</body>
getElementById返回一个元素,但GetElementsByCassName返回一个集合。因此,您可以做的是:
document.getElementsByClassName("test1")[0]
而且getElementsById也不存在。它应该是getElementById。表示没有这是否回答了您的问题?要更加小心每个函数返回的内容。注释下面的答案是正确的,前面注释中的链接将对您有所帮助。虽然ID(应该)是唯一的,但类名不是唯一的
getElementById()
返回单个元素(唯一具有该ID的元素),而getElementsByClassName
返回元素的集合(所有具有该类属性的元素)并且,即使集合包含单个元素,您仍然必须使用集合中的索引来访问它。无论如何,参考您的示例,您应该使用ID和getElementById()
,因为您要标识单个元素而不是元素组。
document.getElementsByClassName("test1")[0].src
document.getElementsByClassName("test2")[0].style.opacity
document.getElementsByClassName("test2")[0].style.visibility = "hidden";