账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么不能通过getElementsByClassName 方式来改变原有的className?
    67
    0
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
        .show{
                width: 100px;
                height: 100px;
                border: 1px solid pink;
            }
        </style>
        <script type="text/javascript">
            function rec(){
                var gg=document.getElementsByClassName("close");
                gg.className="show";
            }
        </script>
    </head>
    <body>
    
    
    <div class="close">hello world</div>
    <input type="button" name="" value="change" onclick="rec()">
    
    
    
    </body>
    </html>

    为什么这样没效果?
    要把class="close"改成id="close";通过var gg=document.getElementById("close");才有效?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在JavaScript中,getElementsByClassName()是一个DOM方法,用于获取HTML文档中具有指定class名的所有元素。这个方法返回的是一个HTMLCollection,你可以通过索引来访问每个元素。但是,如果你尝试通过这个方法来改变原有的className,JavaScript会返回一个HTMLCollection,而不是一个元素。

      这是因为getElementsByClassName()返回的是一个HTMLCollection,而HTMLCollection是一个集合,它不会直接修改原始的HTML元素。相反,你可以在遍历集合的过程中,使用innerHTML属性来改变HTML元素的内容,但是这种方法不能直接改变原有的className。

      如果你想在遍历集合的过程中改变原有的className,你可以使用document.getElementById()方法来获取一个元素,然后通过innerHTML属性来改变其内容,最后再使用classList.add()方法来添加新的class。这样,你就可以在遍历集合的过程中,直接改变原有的className了。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部