JavaScript的document对象的学习

document的概念

浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存HTML文档的所有信息

使用document对象

获取HTML元素对象

直接获取:
①通过id方式

 function testGetElementById()
    {
      var inp=  window.document.getElementById("uname");
       alert(inp);
     }    

②通过name属性值

 function testGetEleByName(){
              document.getElementsByName("fav");
              alert(davs.length);
          }

③通过标签名

  function testGetEleByTagName(){
               var inps=document.getElementsByTagName("input");
              alert(inps.length);
          }

④通过class属性

  function testGetEleByClassName(){
               var inps=document.getElementsByClassName("commmon");
              alert(inps.length);
          }

间接获取:
①父子关系
②子父关系
③兄弟关系

          //间接获取方式:
          //父子关系
          function testParent(){
              var showdiv=document.getElementById("showdiv");
              //获取所有元素对象数组
              var childs=showdiv.childNodes;
              alert=(childs.length);
          }
          //子父关系
          function testChlid(){
              var inp=document.getElementById("inp");//获取子元素对象
              var div=inp.parentNode;
              alert(div);
              
          }
          //兄弟关系
          function testBrother(){
              //兄获取弟
              var inp=document.getElementById("inp");
              var preEle=inp.previousSibling;
              var  nextEle=inp.nextElementSibling;
              alert(preEle+":::"+nextEle);
          }

测试代码:

 <style type="text/css">
                .common{}
                #showdiv{
                    border :solid 2px orange;
                    width:300px;
                    height:300px;
                }
                </style>
 <body>
        <h3>document对象的学习</h3>
        <input type="text"  name="uname" id="uname" value="测试获取html元素----id" onclick="testGetElementById();" />
        <input type="text"  name="uname" id="uname" value="测试获取html元素-----name" onclick="testGetElementByname();" />
        <input type="text"  name="uname" id="uname" value="测试获取html元素-----TagName" onclick="testGetEleByTagname();" />
         <input type="text"  name="uname" id="uname" value="测试获取html元素----className" onclick="testGetElementByClassId();" />
        <hr/>
         用户名:<input type="text" name="unme" id ="unme" value="" onclick=""   /> <br><br>
         <input type="checkbox" name="fav" id="fav" value="" class="common"  />唱歌
        <input type="checkbox" name="fav" id="fav" value="" class="common"  />跳舞
        <input type="checkbox" name="fav" id="fav" value=""   class="common"/>睡觉
        <input type="checkbox" name="fav" id="fav" value="" class="common"  />打游戏
         <hr>
        间接获取方式学习:<br>
        <input type="button" value="测试父子关系" onclick="testParent();"   /> 
        <input type="button" value="测试子父关系" onclick="testChild();"    /> 
        <input type="button" value="测试兄弟关系" onclick="testBrother();"    /> 
        <hr/>
        <div id="showdiv">
            
        <input type=""name="" id ="" value="" />
        <input type="" name="" id="" value="" />
        <input type="" name="" id="" value="" />
        <input type="" name="" id="" value="" />
        <input type="" name="" id="" value="" />
        </div>
    </body>

操作HTML元素对象的属性

步骤:获取元素对象 -------- 操作元素属性
获取
固有:元素对象名.属性名(返回当前属性的属性值)
自定义:元素对象名。getAttribute(“属性名”);(返回自定义属性值的值)
修改
固有:元素对象名.属性名=属性值
自定义:元素对象名.setAttribute(“属性名”。“属性值”)

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!--声明js代码域-->
        <script type="text/javascript">
            //声明函数
            //获取属性值
            function testFiled(){
                //获取元素对象
                var inp=document.getElementById("uname");
                //获取元素属性值
                alert(inp.type+":"+inp.name+":"+inp.id+":"+inp.value);
                
            }
            //修改元素属性值
            function testFiled2(){
                var inp=document.getElementById("uname");
                //修改元素属性
                inp.value="hello world";
                inp.type="button";
            }
            //声明函数----自定义属性
            function testOwnFiled(){
                var inp=document.getElementById("uname");
                //获取自定义属性的值
                alert(inp.getAttribute("abc"));
            }
            //修改
            function testOwnFiled2(){
                //获取元素对象
                var inp=document.getElementById("uname");
                //修改元素自定义属性的值
                alert(inp.setAttribute("abc","呵呵"));
            }
            //使用自定义方式操作固有属性
            function testOper(){
                //获取元素对象
                var inp =document.getElementById("uname");
                //操作元素属性
                alert(inp.getAttribute("type"));
                 alert(inp.getAttribute("value"));
                
            }
            </script>
    </head>
    <body>
       <h3>js操作HTML的元素属性</h3>
       <input type="button" name="" id="" value="测试获取元素的属性----固有" onclick="testFiled();"  />
       <input type="button" name="" id="" value="测试修改元素的属性----固有" onclick="testFiled2();"  />
       <input type="button" name="" id="" value="测获取元素的属性-----自定义" onclick="testOwnFiled();"  />
        <input type="button" name="" id="" value="测试修改元素的属性-----自定义" onclick="testOwnFiled2();"  />
        <input type="button" name="" id="" value="测试自定义操作固有元素的属性-----自定义" onclick="testOper();"  />
       <hr/>
       用户名:<input type="text" name="uname" id="uname" value="" abc="嘿嘿"/>
    </body>
</html>

注意 :尽量不去修改元素的id值和name属性;使用自定义属性获取固有属性内容,value的值获取的是默认值,不能够获取到实时的用户数据

操作HTML元素对象的内容和样式

内容
获取元素
元素对象.innerHTML (返回当前元素对象的所有内容,包括HTML内容)
元素对象名.innerText(返回当前元素对象的所有内容,不包括HTML标签)
修改元素
元素对象名.innerHTML=“新的值”(会将原有的呢绒覆盖,并且HTML标签会被解析)
元素对象名.innerHTML=对象名.innerHTML+“新的值”(追加)
元素对象名.innerText=“新的值”(会将原有内容覆盖,但HTMLb标签不会被解析,会作为文本形式)
在这里插入图片描述
在这里插入图片描述

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style type="text/css">
            #div01{
                width:200px;
                height:200px;
                border:solid 1px orange;
            }
            </style>
        <script type="text/javascript">
            function getContext(){
                //获取元素对象
                var div=document.getElementById("div01");
                //获取元素内容
                alert(div.innerHTML);
                alert(div.innerText);
            }
            
            //修改元素
            function updateContext(){
                //获取元素对象
                var div=document.getElementById("div01");
                //修改元素对象内容
                div.innerHTML="<b>今天天气真好,自己安排行程</b>";
                
            }
             function updateContext2(){
                //获取元素对象
                var div=document.getElementById("div01");
                //修改元素对象内容
                div.innerText="<b>今天天气真好,自己安排行程</b>";
                
            }
            </script>
    </head>
    <body>
        <h3>js操作元素内容</h3>
        <input type="button"  value="测试获取元素内容-----innerHTML&innerText" onclick="getContext();"/>
        <input type="button"  value="测试修改元素内容-----innerHTML" onclick="updateContext();"/>
          <input type="button"  value="测试修改元素内容-----innerText" onclick="updateContext2();"/>
        <hr/>
        <div id="div01">
            <b>你好,今天休息!</b>
            <b>你好,今天休息!</b>
            </div>
    </body>
</html>

样式
js操作元素样式:
①获取元素对象
通过style属性:元素对象名.style.属性=“样式值”(添加或者修改)
元素对象名.style.样式名=""(删除样式)

 function testAddCss(){
                    //获取元素对象
                     var showdiv=document.getElementById("showdiv");
                     //添加元素样式
                     showdiv.style.backgroundColor="#FFA500";
                //js修改元素样式
                showdiv.style.border="solid 2px red";
                //js删除样式
                showdiv.style.border="";
            }

注意:以上操作,操作的是HTML的style属性中的样式,而不是其他css的代码域

②通过className
元素对象名.classname=“新的值”(添加类选择器样式或者修改类选择器样式)
元素对象名.className=""(修改类样式)

  function testOperaCss2(){
                //获取元素对象
                var div01=document.getElementById("div01");
                //获取
                alert(div01.className);     
                //修改
                div01.className="common2";
                //添加或者删除
                div01.className=""
            }

操作HTML的文档结构

增加结点
删除结点
①使用innerHTML
div.innerHTML=div.innerHTML+“内容”(增加结点)
div.innerHTML=""(删除所有子节点)
父结点.removeChlid(子节点对象);(删除指定的子节点)

 <script type="text/javascript">
            function testAdd(){
                //获取元素对象
                var showdiv =document.getElementById("showdiv");
                //给div追加上传按钮
                showdiv.innerHTML=showdiv.innerHTML+"<div><input type='file' value='' /><input type='button' value='删除' onclick='delInp()' /></div>";
                
            }
            function  delInp(btn){
             //获取父级div
                var showdiv=document.getElementById("shoediv");
                   //获取要删除的div
                   var cdiv=btn.parentNode;
                   document.getElementById("a")
                   //父div删除子div
                   show.removeChild(cdiv);
            }
            
            
            </script>


获取元素对象
var obj =document.creatEllement(“标签名”);
元素对象名.appendChild(obj);

 <script type="text/javascript">
            function testOper2(){
                //获取元素对象
                var showdiv=document.getElementById("showdiv");
                //创建input元素对象
                var inp=document.createElement("input");
                inp.type="file";
                //创建按钮元素对象
                var btn=document.createElement("input");
               btn.type="button";
               btn.value="删除";
               btn.onclick=function(){
                   showdiv.removeClild(inp);
                   showdiv.removeClild(btn);
                   showdiv.removeClild(br);
               }
               //创建换行符
               var br=document.createElement("br");
               //将创建的元素对象存放到div中
               showdiv.appendChild(inp);
               showdiv.appendChild(btn);
               showdiv.appendChild(br);
            }
            </script>

document操作form表单

①使用id方式
②使用name属性

   function testForm(){
                //获取form表单
                var fm=document.getElementById("fm");
                alert(fm);
                //form表单的name属性值来获取
                var fm=document.frm;
                alert(frm);
            }

获取form下的所有表单元素对象集合
fm.elements
form表单的常用方法
表单对象.submit();
form的属性操作
表单对象名.action=“新的值”(动态的改变数据的提交路径)
表单对象名.method=“新的值”(动态的改变提交方式)

js 表单元素的通用属性
只读模式:readonly(数据不可关闭,但可提交)
关闭模式:disabled(不可以进行任何的操作,数据不会提交)

发布了22 篇原创文章 · 获赞 4 · 访问量 1533

猜你喜欢

转载自blog.csdn.net/qq_42711899/article/details/104182114