HTML DOM

本文详细介绍了 HTML DOM 的概念及其如何将 HTML 文档解析为节点树结构,包括不同类型的节点及其属性,并演示了如何使用 getElementById 和 getElementsByTagName 方法来访问和操作这些节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 HTML DOM

 

HTML DOMHTML Document Object Model(文档对象模型)的缩写,HTML DOM则是专门适用与HTML/XHTML的文档对象模型。熟悉软件开发的人员可以将HTML DOM理解为网页的API。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。

 

HTML DOM HTML 文档呈现为带有元素、属性和文本的树结构(节点树)。

节点:

DOM 是这样规定的:

整个文档是一个文档节点

每个 HTML 标签是一个元素节点

包含在 HTML 元素中的文本是文本节点

每一个 HTML 属性是一个属性节点

注释属于注释节点

 

元素节点类型(nodeType)1

文本节点类型(nodeType3

属性节点类型(nodeType2

节点的访问:

getElementById() getElementsByTagName()方法

getElementById() getElementsByTagName() 这两种方法,可查找整个 HTML 文档中的任何 HTML 元素。这两种方法会忽略文档的结构。假如您希望查找文档中所有的 <p> 元素,getElementsByTagName() 会把它们全部找到,不管 <p> 元素处于文档中的哪个层次。同时,getElementById() 方法也会返回正确的元素,不论它被隐藏在文档结构中的什么位置。

 

 

语法:

<span id=”ID”></span>

document.getElementById("ID");

 

注:此方法只能用于document 对象

 

getElementsByTagName() 语法

document.getElementsByTagName("标签名称");

 

或者:

document.getElementById('ID').getElementsByTagName("标签名称");

 

实例:

下面这个例子会返回所有 <p> 元素的一个节点列表,且这些 <p> 元素必须是 id "maindiv" 的元素的后代:

document.getElementById('maindiv').getElementsByTagName("p");

 

parentNodefirstChild以及lastChild方法

parenNode--------父节点

firstChild-----------首节点

lastChild-----------尾节点

 

 

实例:

<script type="text/javascript">

window.onload = function() {

    //通过getElementById("edu")方法获取select的对象

          var edus = document.getElementById("edu");

     var edus1 = edus.childNodes;

     alert(edus1.length);

     var fc = edus.firstChild;

     alert(fc.nodeName);

     var lc = edus.lastChild;

     alert(lc.nodeName);

     var llc = lc.firstChild;

     alert(llc.nodeValue);

    

      var msg="";

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

       if(edus1[i].nodeType==1)

         msg+=edus1[i].lastChild.nodeValue+",";

     }

    

 

          document.getElementById("showMsg").innerHTML=msg;

         }

</script>

         <body>

         <div>

                   <form action="">

                   用户名:<input type="text" name="name" />

                   学历:

         <select id="edu" name="education"><option value="大专">大专生</option>

           <option value="本科">本科生</option>

           <option value="硕士">硕士生</option>

           <option value="博士">博士生</option>

   </select>

                   <input type="submit" value="注册" />

                   </form>

         </div>     

                     用户的学历是:

   <div id="showMsg">

  

   </div>

 

 

         </body>

注意 标签之间的空格也算节点。上面方法比较不容易理解、下面有更简单的方法:

         <script type="text/javascript">

window.onload = function() {

    //通过getElementById("edu")方法获取select的对象

         var edus = document.getElementById("edu");

         //通过selectoptions集合获取所有的option对象

         var edus1  =   edus.options;

         var msg ="";

         //遍历所有的option对象的文本值

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

               msg+=edus1[i].innerHTML+",";

           }

          //把获取的msg信息写入到showMsgdiv

          document.getElementById("showMsg").innerHTML=msg;

         }

</script>

 

此方法用options直接得到OPTION的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值