老师指点下 为什么我这边点击按钮没法实现切换图片的功能

老师指点下 为什么我这边点击按钮没法实现切换图片的功能

html 

<!DOCTYPE html>

<html>


<head>

    <title>图片轮播</title>

    <link rel="stylesheet" type="text/css" href="1.css">

    <script type="text/javascript" src="1.js"></script>

</head>


<body onload="f1()">

    <div id="id">

            <div class="name1" id="id1">

                <img src="img/bg1.jpg">

            </div>



            <div class="name1" id="id2">

                <img src="img/bg2.jpg">

            </div>


            <div class="name1" id="id3">

                <img src="img/bg3.jpg">

            </div>

    </div>

    <input type="button" value="1" name="input1">

    <input type="button" value="2" name="input1">

    <input type="button" value="3" name="input1">

</body>


</html>


css

*{

padding:0px;

margin: 0px;

}


#id{

width: 1200px;

height: 460px;


}


.name1{

display: none;


}


#id1{

display: block;


}


js


function f1() {

    var arr = document.getElementsByName("input1");

    var id1 = document.getElementById("id1");

    var id2 = document.getElementById("id2");

    var id3 = document.getElementById("id3");


    for (var i = 0; i < arr.length; i++) {

        arr[i].onclick = function() {


            if (arr[i].value == 1) {

                id1.display = "block";

                alert(1);

            } else if (arr[i].value == 2) {

                id2.display = "block";

                alert(1);


            } else {

                id3.display = "block";

                alert(1);


            }


        }


    }




}




正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,display 是样式,所以需要通过设置控件的style进行设置。如:Object.style.display=none

祝学习愉快!

好帮手慕小尤 2020-08-25 11:09:55

同学你好,因在arr[i]并未获取到数据,所以无法实现切换图片,建议同学修改为this.value ,当点击了哪个按钮则显示哪个。修改后代码如下所示:

http://img1.sycdn.imooc.com//climg/5f4480f9094207d307730639.jpg

function f1() {
    var arr = document.getElementsByName("input1");
    var id1 = document.getElementById("id1");
    var id2 = document.getElementById("id2");
    var id3 = document.getElementById("id3");
    for (var i = 0; i < arr.length; i++) {
        arr[i].onclick = function() {
            if (this.value == 1) {
                id3.style.display = "none";
                id2.style.display = "none";
                id1.style.display = "block";
                // alert(1);
            } else if (this.value == 2) {
                id1.style.display = "none";
                id3.style.display = "none";
                id2.style.display = "block";
                // alert(1);
            } else {
                id1.style.display = "none";
                id2.style.display = "none";
                id3.style.display = "block";
                // alert(1);
            }
        }
    }
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 老师我想在请问下 display 不就是一个对象的属性么 为啥需要 对象名.style.display 而不能 直接用 对象名.display 呢 为什么需要加一个 style
    2020-08-25 22:07:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师