zoukankan      html  css  js  c++  java
  • 节点

    目录:

    1、元素节点

    2、文本节点

    3、属性节点

    4、获取元素

    以下面的代码与节点树为例来理解节点:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="utf-8">
     5         <title>ToDo list</title>
     6     </head>
     7     <body>
     8         <h1>待办清单</h1>
     9         <p title="reminder">记得要做:</p>
    10         <ul id="todo">
    11             <li>买菜</li>
    12             <li>做饭</li>
    13             <li>拖地</li>
    14         </ul>
    15     </body>
    16 </html>

    元素节点

      上面的节点树有<head>、<body>、<li>等元素。根元素是<html>。标签的名字就是元素的名字,比如文档段落元素的名字是"p"。

    文本节点

      文本节点总是被包含在元素节点内部。比如说 <p>元素包含着文本 “记得要做:”。<ul>元素没有包含文本节点,它包含元素节点。

    属性节点

      属性节点总是被包含在元素节点中。例如,几乎每个元素都有一个 title 属性。

      例如:<p title="reminder">记得要做:</p>

    获取元素

    获取元素节点的 3 种 DOM 方法:① 通过元素 ID 获取 ( getElementById )

                   ② 通过标签名字获取( getElementsByTagName )

                   ③ 通过类名字获取

    1. getElementById

    这个方法返回一个与那个有着给定 id 属性值的元素节点对应的对象。

    下面示例返回 id 为 todo 的元素节点对应的对象,代码:

    下面举个例子,实现:① 获取文档里 id 属性为 todo 的元素。输出它。

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="utf-8">
     5         <title>ToDo list</title>
     6     </head>
     7     <body>
     8         <div>
     9             <h1>待办清单</h1>
    10             <p title="reminder">记得要做:</p>
    11             <ul id="todo">
    12                 <li>买菜</li>
    13                 <li>做饭</li>
    14                 <li>拖地</li>
    15             </ul>
    16             <script>
    17                 console.log(document.getElementById("todo"));
    18             </script>
    19         </div>
    20     </body>
    21 </html>

    控制台输出:

     

     展开看看:

    2. getElementsByTagName

    参数是标签的名字。

    返回一个对象数组。

    每个对象分别对应着文档里有着给定标签的一个元素。

    可以通过 length 属性查出数组的元素个数。

    下面举个例子,实现:① 输出文档里元素节点总数

              ② 输出文档里元素节点 li 的个数

              ③ 获取文档里的元素节点 li,输出返回的数组里的每一个元素的文本节点与元素的类型

              ④ 组合使用 getElementsById getElementsByTagName,获取 id 属性为 todo 的元素包含着多少个列表项

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="utf-8">
     5         <title>ToDo list</title>
     6     </head>
     7     <body>
     8         <div>
     9             <h1>待办清单</h1>
    10             <p title="reminder">记得要做:</p>
    11             <ul>
    12                 <li>买菜</li>
    13                 <li>做饭</li>
    14                 <li>拖地</li>
    15             </ul>
    16             <ul id="todo">
    17                 <li>吃饭</li>
    18                 <li>睡觉</li>
    19             </ul>
    20             <script>
    21                 //1. 利用通配符 * 输出文档里元素节点总数。
    22                 console.log('文档元素节点总数:'+document.getElementsByTagName("*").length);
    23                 
    24                 //2. 输出文档里元素节点 li 的个数
    25                 console.log('元素 li 的个数:'+document.getElementsByTagName("li").length);
    26                 
    27                 //3. 输出返回的数组中的每一个元素的文本节点与该元素的类型。(每个元素都是对象)
    28                 var item = document.getElementsByTagName("li");    //因为反复敲入document.getElementsByTagName("li")麻烦,所以将它赋给 item
    29                 for(let i=0; i<item.length; i++){
    30                     console.log(item[i].innerHTML, typeof item[i]);
    31                 }
    32                 
    33                 //4. 组合使用 getElementsById 跟 getElementsByTagName,获取 id 属性为 todo 的元素 li 的文本节点
    34                 var todoList = document.getElementById("todo");
    35                 var items = todoList.getElementsByTagName("li");
    36                 console.log('id 属性为 todo 的元素 li 的文本节点:');
    37                 for(let i=0; i<items.length; i++){
    38                     console.log(item[i].innerHTML);
    39                 }
    40             </script>
    41         </div>
    42     </body>
    43 </html>

    控制台输出:

    3. getElementsByClassName

    参数为类名。

    返回值为一个具有相同类名的元素的数组。

    下面举个例子,实现:① 获取文档里类名为 sty1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML与元素的类型

              ② 获取文档里带有多个类名的,类名为 sty1、box1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML

              ③ 组合使用 getElementsById 跟 getElementsByClassName,获取 id 属性为 todo 且 class 属性为 sty1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="utf-8">
     5         <title>ToDo list</title>
     6     </head>
     7     <body>
     8         <div class="box1">
     9             <h1 class="sty1 box1">待办清单</h1>
    10             <ul id="todo">
    11                 <li class="sty1">买菜</li>
    12                 <li class="sty1">做饭</li>
    13                 <li>拖地</li>
    14             </ul>
    15         </div>
    16         <script>
    17             //1. 获取文档里类名为 sty1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML与元素的类型
    18             var item = document.getElementsByClassName("sty1");
    19             console.log('数组长度:'+item.length);
    20             for(let i=0; i<item.length; i++){
    21                 console.log(item[i].innerHTML);
    22             }
    23             console.log('-------------1----------------');
    24             
    25             //2. 获取文档里带有多个类名的,类名为 sty1、box1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML
    26             var item2 = document.getElementsByClassName("sty1 box1");
    27             console.log('数组长度:'+item2.length);
    28             for(let i=0; i<item2.length; i++){
    29                 console.log(item2[i].innerHTML);
    30             }
    31             console.log('-------------2----------------');
    32             
    33             //3. 组合使用 getElementsById 跟 getElementsByClassName,获取 id 属性为 todo 且 class 属性为 sty1 的元素,输出返回的数组里的每一个元素的开始与结束标签之间的HTML
    34             var item3 = document.getElementById("todo");
    35             var item4 = item3.getElementsByClassName("sty1");
    36             console.log('数组长度:'+item4.length);
    37             for(let i=0; i<item4.length; i++){
    38                 console.log(item4[i].innerHTML);
    39             }
    40             console.log('-------------3----------------');
    41         </script>
    42     </body>
    43 </html>

    控制台输出:

  • 相关阅读:
    多种的android进度条的特效源码
    仿360手机卫士界面效果android版源码
    非常不错的KPTimePicker效果源码
    jquery超级简单的后台系统自适应框架
    jquery银行电子账单表格填入和编辑插件
    jquery核心基础
    javascript基础的一些总结
    查看HA 的stat
    查看Linux服务器序列号
    TCPDUMP收集某个端口的流量
  • 原文地址:https://www.cnblogs.com/xiaoxuStudy/p/12814869.html
Copyright © 2011-2022 走看看