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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于innerHTML改变div文本内容无效的问题
    25
    0

    这个问题折腾我一晚上了,因为觉得是很简单的问题,没想到是哪出错了,请各位帮我看一下;
    问题描述:
    一个简单的表单验证的demo,在Input里输入文本之后,通过button的click事件处理函数验证输入的文本,然后我用innerHTML去改变文本的内容,发现无 用;emmmm;

    各种搜索也没有看到说innerHTML改变div文本内容无效

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <link rel="stylesheet" href="../../../bootstrap-3.3.7-dist/css/bootstrap.css">
            <link rel="stylesheet" href="main.css">
            <!-- <script src="test.js"></script> -->
        </head>
        <body>
            <div class="container">
                <div class="row">
                    <div class="col-md-8 col-md-offset-2">
                        <form class="form-horizontal">
                            <div class="form-group">
                               <label for="username" class="col-sm-2 control-label"> 名称</label>
                               <div class="col-sm-7">
                               <input type="text" id="username" class="form-control" placeholder="请输入用户名">
                               </div>
                               <button class="btn btn-primary">验证</button>
                            </div>
                            <div class="form-group">
                                <div class="col-sm-offset-2 col-sm-10" id="desc">必填,长度为4-16个字符</div>
                            </div>
                        </form>
                </div>
            </div>
            </div>
            <script>
                window.onload=function (){
        var btn=document.getElementsByClassName("btn")[0];
        var desc=document.getElementById("desc");
        btn.addEventListener("click",valihandler,false);
        // console.log(desc.innerHTML)
        function valihandler(e){
            var user=document.getElementById("username").value;
            var pat=/\w{4,16}/;
            var namelen=user.length;
            if(namelen==0){
                console.log(desc);
                desc.innerHTML='格式错误';
            };
        }
    
       
    }
            </script>
        </body>
    </html>
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 流年划过岁月 普通会员 1楼

      HTML的innerHTML属性用来设置或者获取元素的内容。但是,如果尝试修改innerHTML属性,但是这个元素没有对应的innerHTML属性,那么你将无法修改这个元素的内容。

      例如,如果你有一个div元素,它的innerHTML是"Hello, World!",你尝试将这个div的innerHTML改为"Hello, New World!",那么你将会收到一个错误消息,因为div并没有innerHTML属性。

      如果你需要修改div的内容,你可以使用innerHTML属性的setHTML()方法,或者使用textContent属性来改变文本内容。

      例如:

      javascript var div = document.getElementById("myDiv"); div.innerHTML = "Hello, New World!";

      javascript div.textContent = "Hello, New World!";

      请注意,如果你尝试修改的元素已经被其他内容覆盖,那么这些修改将会被覆盖。因此,如果你需要在修改元素内容的同时保留其他内容,你可能需要使用其他方法,例如使用innerHTML属性的replace()方法。

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