Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我在'class'和'id'属性方面遇到问题。将'id'与`<;img>;`代码可以正常工作。但是使用'class'它';它不工作了_Javascript_Html - Fatal编程技术网

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";