JavaScript的DOM文档操作总结

 DOM(文档对象模型)

              DOM是针对HTML和XML文档的一个API(应用程序编程接口),DOM描绘了一个层次化的节点数,允许开发人员添加,移除,修改页面的某一部分。DOM是构造的对象树

注:HTML DOM 是关于如何获取、更改、添加或删除 HTML 元素的标准。

一、节点Node

        :网页基本就是有节点构成的,每一部分都可称为节点。但是具体类型不大相同,可以分为

四类:    1、  Document (文档节点) :整个HTML文档

               2、  Element(元素节点):HTML文档中的HTML标签

               3 、 Attribute(属性节点):元素的属性

               4、 Text(文本节点):HTML标签中的文本内容

        Document (文档节点)

                :整个HTML文档,网页中所有的节点都是它的子节点。doucument对象作为window的对象存在,不用获取可直接使用,因此通过document查找文档的节点或创建节点。

1、获取节点:

方法作用参数返回值
getElementById("") 通过元素的id获取元素节点想要获取的元素id找到的第一个元素,如果没有,返回null

getElementsByClassName

("app app1")

通过元素的class name 获取元素节点 为一个字符串 表示元素的类名 可以由空格隔开HTMLCollection list 包含一个或多个元素 ,可以使用数组的操作方式去处理理结果
getElementsByTagName("") 通过元素的元素名(标签名)找到对应的元素为一个字符串 表示元素的元素名(标签名) HTMLCollection list 包含一个或多个元素 可以使用数组的操作方式
                  去处理结果
getElementsByName("")  通过元素的name属性找到对应的元素为一个字符串 表示元素nameNodeList list 包含一个或多个元素 可以使用数组的操作方式
                  去处理结果
document.querySelector(“”“”)通过CSS选择器选择一个元素。为一个字符串CSS的选择器找到的第一个元素,
document.querySelectorAll("")通过CSS选择器选择多个元素。为一个字符串CSS的选择器找到的所有元素数组

案例:

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
 </head>
 <body>
     <div id="div1">
         <p class="p1"></p>
         <h1 name="h1"></h1>
         <button>按钮</button>
         <a href="http://baidu.com"></a>
         <font>hello world</font>
         <ul class="ul">
             <li></li>
             <li></li>
             <li></li>
         </ul>
     </div>
     <script>
         //通过id查找元素
         var div = document.getElementById("div1");
         console.log(div);
         //通过class查找元素
         var p = document.getElementsByClassName("p1");
         console.log(p);
        //  通过标签名选择
         var button = document.getElementsByTagName("button");
         console.log(button);
         //通过name查找元素(一般不用)
         var h1 = document.getElementsByName("h1");
         console.log(h1);
         //通过css选择器查找单个
         var a = document.querySelector("#div1 a");
         console.log(a);
         //通过css选择器查找多个
         var li = document.querySelectorAll(".ul li");
         console.log(li);
     </script>
 </body>
 </html>

2、 查找节点

查找节点方法作用
 firstElementChild某个节点的第一个孩子元素节点
lastElementChild某个节点的最后一个孩子元素节点
nextElementSibling 某个节点的下一个兄弟元素节点
previousElementSibling 某个节点的上一个兄弟元素节点
 childElementCount    该节点子元素的数量
 textContent 该元素内部的text
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="myDiv">
        <ul id="ul">
            <li id="li1">列表1</li>
            <li id="li2">列表2</li>
            <li id="li3">列表3</li>
            <li id="li4">列表4</li>
        </ul>
    </div>
    <script>
        var myDiv = document.getElementById("myDiv");
        var ul = document.getElementById("ul");
        //查找ul的第一个孩子节点
        console.log(ul.firstElementChild);
        console.log("--------------------------");
        //查找ul的最后一个孩子节点
        console.log(ul.lastElementChild);
        console.log("--------------------------");
        //查找li2的下一个兄弟元素节点
        var li2= document.getElementById("li2")
        console.log(li2.nextElementSibling);
        console.log("--------------------------");
        //查找li2的上一个兄弟元素节点
        console.log(li2.previousElementSibling);
        console.log("--------------------------");
        //ul节点下字节点数量
        console.log(ul.childElementCount);
        console.log("--------------------------");
        //该元素内部的text
        console.log(li2.textContent);        
    </script>
</body>
</html>

3、获取html的值得方法:    

获取html的值得方法作用
节点.innerText获取html元素的text 内容
节点.innerHTML获取html元素的html内容
节点.Attribute获取HTML元素的属性值
节点.getAttribute(属性)获取HTML元素的属性值
节点.style.样式获取HTML元素的行内样式

 实例,注意innerHTML与innerText的区别

getAttribute()需要参数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div" style="background-color: red;">
        <p id="p" >hello,world</p>
        <a id="a" href="http://baidu.com"></a>
    </div>

    <script>
        var div = document.getElementById("div");
        var p =document.getElementById("p");
        var a = document.getElementById("a")
       //获取HTML元素的Text内容
        console.log(div.innerText);
        console.log(p.innerText);
        //获取html元素的html内容
        console.log(div.innerHTML);
        console.log(p.innerHTML);
        //获取HTML元素的属性值
        console.log(a.href);
        //getAttribute获取HTML元素的属性值
        console.log(a.getAttribute("href"));
        //获取HTML元素的行内样式
        console.log(div.style.backgroundColor);
    </script>
</body>
</html>

  4、改变HTML的方法

        改变html的方法就是在获得html的基础上给它赋新的值,方法如下:

改变html的值得方法作用
节点.innerText=new text改变html元素的text 内容
节点.innerHTML=new html改变html元素的html内容
节点.Attribute=new value改变HTML元素的属性值
节点.setAttribute(属性,value)改变HTML元素的属性值
节点.style.样式=new style改变HTML元素的行内样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div" style="background-color: red;">
       div内容    
    </div>
         <div id="div2"></div>
        <a id="a1" href="http://baidu.com">百度1</a>
        <a id="a2" href="http://baidu.com">百度2</a>

    <script>
        var div = document.getElementById("div");
        var div2 = document.getElementById("div2");
        var a1 = document.getElementById("a1")
        var a2 = document.getElementById("a2")
       //改变HTML元素的Text内容  (1)
        console.log( div.innerText="我是新div内容");
        //改变html元素的html内容    (2)
        console.log(div2.innerHTML="<button>div按钮</button>");
        //改变HTML元素的属性值  (3)
        a1.href="http://123.sogou.com"
        console.log(a1);
        //setAttribute改变HTML元素的属性值  (4)
        a2.setAttribute("href","http://123.sogou.com")
        console.log(a2);
        //改变HTML元素的行内样式    (5)
        console.log(div.style.backgroundColor="pink");
    </script>
</body>
</html>

5、修改 HTML元素方法介绍

方法

作用

参数

返回值

document.createElement(element)

创建新的HTML 元素节点。

创建元素的名称

返回创建的节点

document.createAttribute(attribute)

创建 HTML 属性节点。

要创建的属性名称。

创建的属性

document.createTextNode(text)

创建 HTML 文本节点。

文本节点的文本。

创建文本节点

元素节点.removeChild(element)

删除 HTML 元素。

要移除的节点对象。

成功返回被删除的节点,失败,返回 NULL。

元素节点.appendChild(element)

末尾添加新HTML元素

要添加的节点对象。

添加的节点

元素节点.replaceChild(newnode,oldnode)

替换HTML元素

newnode你要插入的节点对象。

oldnode你要移除的节点对象

替换的节点

元素节点.insertBefore(newnode,old

node)

在指定的子节点前面插入新的子节点。

newnode要添加新的节点前的子节点

oldnode要添加新的节点前的子节点

插入的节点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="myDiv">
        <div  id=div1>div1</div>
        <div id=div2>div2</div>
        <div id=div3>div3</div>
    </div>
    
</body>
<script>
    
    //创建一个p节点 document.createElement
    var node=document.createElement("p");
    //创建一个text节点 document.createTextNode
    var textNode=document.createTextNode("hello");
    //将text节点追加到p节点上 appendChild
    node.appendChild(textNode);
    //找到id为mydiv的节点
    var myDiv = document.getElementById("myDiv");
    //将刚刚创建的node节点追加为myDiv的子节点
    myDiv.appendChild(node);
    //删除第一个div1
    var  div1= document.getElementById("div1");
    myDiv.removeChild(div1);
    
    //替换最后一个div3(创建一个h1替换)
    var div3 = document.getElementById("div3");
    var h1=document.createElement("h1");
    h1.innerText="替换";
    myDiv.replaceChild(h1,div3);
    //创建一个h2插入到div2前面
    var h2 = document.createElement("h2");
    h2.innerText="插入";
    myDiv.insertBefore(h2,div2)
    console.log(myDiv);
</script>
</html>

5、 Comment类型
    注释方法
      createComment();
      作用:创建注释节点
      var cNode = document.createComment("这是一个注释");

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  <div id="div"></div>
  <script>
        var cNode = document.createComment("这是一个注释");
        var div =document.getElementById("div");
        div.appendChild(cNode);
        console.log(div.innerHTML);
  </script>
    
</body>
</html>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第1篇 JavaScript基础篇 第1章 JavaScript简介 1.1 JavaScript概述 1.1.1 什么是JavaScript 1.1.2 JavaScfipt的基本特点 1.1.3 常用的Web开发语言 1.2 JavaScript的应用 1.2.1 客户端应用 1.2.2 服务器端应用 1.3 在web页面中使用JavaScript 1.3.1 HTML的基本结构 1.3.2 在HTML中嵌入JavaScript 1.3.3 链接JavaScript文件 1.4 编写JavaScript的工具 1.4.1 使用纯文本编辑器 1.4.2 使用专业化脚本编辑工具 1.4.3 使用Microsoft脚本编辑器 第2章 JavaScript编程基础 2.1 基础语法 2.1.1 数据类型 2.1.2 变量和常量 2.1.3 表达式 2.1.4 运算符 2.2 流程控制 2.2.1 条件语句r 2.2.2 循环语句 2.2.3 其他语句 2.3 使用对话框 2.3.1 警告对话框 2.3.2 确认对话框 2.3.3 提示对话框 第2篇 JavaScript内置对象篇 第3章 JavaScript内置对象 3.1 JavaScript对象概述 3.1.1 对象的概念 3.1.2 使用JavaScript对象基础知识 3.2 Array对象 3.2.1 创建Array对象 3.2.2 Array对象属性 3.2.3 Array对象方法 3.3 String对象 3.3.1 创建String对象 3.3.2 String对象属性 3.3.3 String对象方法 3.4 Math对象 3.5 Date对象 3.5.1 Date对象方法 3.5.2 使用Date对象 3.6 自定义对象 第4章 JavaScript常用对象 4.1 Document对象 4.1.1 Document对象概述 4.1.2 使用Document对象 4.2 Form对象及其元素 4.2.1 Form对象概述 4.2.2 表单元素 4.2.3 表单元素属性和事件 4.2.4 表单验证 4.3 Anchor与Link对象 4.3.1 Anchor对象 4.3.2 Link对象 4.4 Image对象 4.4.1 图像翻转 4.4.2 图像载入 第5章 JavaScnpt其他常用窗口对象 5.1 Window对象 5.1.1 常用属性和方法 5.1.2 多窗口控制 5.2 Screen对象 5.3 Navigator对象 5.4 Location对象 5.4.1 常用属性和方法 5.4.2 Location对象的应用实例 5.5 History对象 5.5.1 常用属性和方法 5.5.2 History对象的应用实例 5.6 Frame对象 5.6.1 Frame对象概述 5.6.2 常用属性 5.6.3 Frame对象的应用实例 第6章 DoM对象 6.1 DOM概述 6.1.1 DOM简介 6.1.2 DOMHTML文档 6.2 DOM对象 6.2.1 DOM基本接口 6.2.2 DOM基本对象 6.3 使用DOM 6.3.1 DOM基础 6.3.2 Node和NodeList接口 6.3.3 Element接口 6.3.4 Text接口和Attr接口 6.4 操作HTML文档 6.4.1 访问元素 6.4..2 添加节点 6.4.3 删除节点 6.4.4 对属性进行操作 第3篇 JavaScript高级编程篇 第7章 正则表达式 7.1 正则表达式及其作用 7.2 正则表达式参考语法 7.2.1 限定符 7.2.2 选择匹配符 7.2.3 分组组合和反向引用符 7.2.4 特殊字符 7.2.5 字符匹配符 7.2.6 定位符 7.2.7 原义字符 7.3 RegExp对象 7.3.1 创建RegExp对象实例的两种方式 7.3.2 RegExp对象的属性 7.3.3 RegExp对象的方法 7.4 String对象中与正则表达式有关的方法 第8章 高级DoM技术 8.1 CSS样式 8.1.1 CSS语法 8.1.2 CSS属性 8.2 样式控制 8.2.1 Style对象 8.2.2 使用CSS属性 8.2.3 自定义鼠标提示 8.2.4 可折叠区域 8.3 StyleSheet对象 8.3.1 StyleSheet对象的属性 8.3.2 StyleSheet对象的方法 8.4 修改内容 8.5 实例应用 8.5.1 制作动态新闻框 8.5.2 显示当前日期 8.5.3 进度条控制滚动图片 8.5.4 百叶窗效果 8.5.5 更改表格间隔背景色 第9章 JavaScript中的XML 9.1 XML语言 9.1.1 XML概述 9.1.2 XML文档结构 9.1.3 XML标记 9.1.4 XML文档元素 9.1.5 XML属性 9.1.6 XML命名空间 9.2 XMLDOM 9.2.1 通用接口 9.2.2 IE中的XMLDOM支持 9.2.3 Mozilla中XMLDOM支持 9.2.4 XMLDOM实例 9.3 XPath 9.3.1 XPath概述 9.3.2 IE中的XPath支持 9.3.3 Mozilla中的XPath支持 9.4 XSLT 9.4.1 XSLT概述 9.4.2 IE中的XSLT支持 9.4.3 MozilIa中XSLT支持 9.5 数据岛技术 第10章 JavaScript事件处理 10.1 事件概述 10.1.1 事件简介 10.1.2 指定事件 10.2 原始事件模型 10.2.1 事件类型 10.2.2 使用事件返回值 10.2.3 使用事件this关键字 10.2.4 使用属性处理事件 10.2.5 使用JavaScript处理事件 10.3 标准事件模型 10.3.1 事件传播 10.3.2 注册事件处理程序 10.3.3 设置对象的事件处理程序 10.3.4 事件的模块和类型 10.3.5 Event接口和对象 10.4 IE事件模型 10.4.1 IEEvent对象 10.4.2 IE的事件传播 10.5 常用事件 10.5.1 鼠标事件 10.5.2 键盘事件 10.5.3 表单事件 10.5.4 编辑事件 10.5.5 页面事件 第11章 使用Cookie和文件 11.1 Cookie 11.1.1 Cookie概述 11.1.2 Cookie属性 11.1.3 创建Cookie 11.1.4 读取Cookie 11.1.5 删除Cookie 11.1.6 在客户机设置Cookie 11.1.7 保存用户登录状态 11.2 文件处理 11.2.1 FileSystemObjeet对象 11.2.2 Drive对象 11.2.3 Folder对象 11.2.4 File对象 11.2.5 资源管理器 第12章 JavaScript与Ajax 12.1 Ajax概述 12.1.1 Ajax运行机制 12.1.2 A1ax技术优势 12.2 Ajax核心技术 12.2.1 JavaSeript 12.2.2 DOM 12.2.3 XML 12.2.4 XMLHtlpRequest 12.3 使用Ajax 12.3.1 创建XMLHttp,Request对象 12.3.2 获取XMLHttp,Request对象的信息 12.3.3 向服务器发送请求 12.3.4 处理服务器响应 12.3.5 用户注册实例 12.3.6 处理XML请求 12.3.7 动态列表 第13章 JavaScript安全与异常处理 13.1 JavaScript安全 13.1.1 域策略 13.1.2 IntemetExplorer安全区域 13.2 IE浏览器内建的错误报告 13.3 异常处理 13.3.1 异常类型 13.3.2 触发onError事件处理异常 13.3.3 使用trycatch语句处理异常 13.3.4 Error对象 13.3.5 使用throw语句 13.4 JavaScript调试技法 13.4.1 使用alen()语句 13.4.2 使用write()语句 13.4.3 抛出自定义异常消息 第4篇 JaVflscript特效应用 第14章 JavaScript网页特效 14.1 文字特效 14.1.1 文字向上不间断无缝滚动 14.1 12灼热的文字(IE) 14.1.3 标题栏文字循环向左移动 14.1.4 各种形式输出文字 14.1.5 跑马灯式说明文字 14.1.6 跳动的文字 14.2 图片特效 14.2.1 线性幻灯片 14.2.2 非线性幻灯片 14.2.3 展示翻页效果 14.2.4 展示缩略图新闻效果 14.2.5 图片滑动效果 14.2.6 三维相册 14.3 时间特效 14.3.1 时钟提示自动关闭 14.3.2 日历生成器 14.4 窗口特效 14.4.1 窗口拖动 14.4.2 图层受标签控制显示 14.5 鼠标特效 14.5.1 鼠标方向提示 14.5.2 鼠标控制页面上下移动 14.6 菜单特效 14.6.1 树状菜单 14.6.2 折叠菜单 14.6.3 滑动菜单 14.6.4 右键菜单 ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值