DOM文档对象模型—节点操作

DOM
Document Object Model 文档对象模型
文档:表示整个的HTML网页文档
对象:将网页中的每一个部分转换为了一个对象
模型:使用模型来表示对象之间的关系,这样更方便获取对象

实例化:

  1. 通过dom拿到我们想要的节点
  2. 怎么通过dom创建节点

节点类型

节点:Node——构成HTML文档最基本的单元

Document类型
表示整个html文档
属性:

body:直接指向body元素
head:获取html头部内容
title:获取文档标题
doctype:获取<!DOCTYPE> 兼容性不太强,很少用
URL:获取完整的URL
domain:获取域名
referrer:获取链接到当前页面的那个页面的url
images:获取页面所有的img 返回值:HTMLCollection类数组对象
forms:获取所有的form对象 返回值:HTMLCollection类数组对象
links:获取文档中带有href属性的a元素
documentElement:html根标签

方法:

方法名作用调用者参数返回值
getElementById()通过元素的id获取元素节点document想要获取的元素id找到的第一个元素,如果没有,返回null
getElementsByTagName()通过元素的元素名(标签名)找到对应元素document一个字符串,表示元素的元素名(标签名)HTMLCollection(类数组对象), list包含一个或多个元素 可以使用数组的操作方式去处理结果
getElementsByClassName()通过元素的class name获取元素节点document一个字符串,表示元素的类名HTMLCollection(类数组对象) ,list包含一个或多个元素 可以使用数组的操作方式去处理结果
getElementsByName()通过元素的name属性找到对应元素(主要用于表单)document一个字符串,表示元素的nameNodeList (类数组对象), list包含一个或多个元素 可以使用数组的操作方式去处理结果

Element类型
属性:

id :元素在文档中的唯一标识符
className :与元素的class特性相对应,可以重复,可以有多个,用空格分割
title :与元素相关的附加说明信息
src: img具有的属性
alt :img具有的属性

方法:

  1. 设置属性:
    第一种: node.className=“对应的值”
    第二种: node.setAttribute(“属性名”,“对应的值”);

    setAttribute()
    作用:给获取到的元素设置属性
    调用者:要设置属性的元素
    参数:两个参数(属性名 对应的值)
    注意点:要设置的值存在的话,修改原来的值;不存在的话,添加

  2. 获取属性:
    node.getAttribute()

    作用:获取到相应元素的某个属性
    调用者:元素
    参数:属性名
    返回值:对应的属性值

  3. 移除属性:
    removeAttribute()

    作用:移除相应元素的某个属性
    调用者:元素
    参数:属性名
    返回值:对应的属性值

创建元素
createElement()

作用:创建一个dom元素节点
调用者:document
参数:一个参数,要创建元素的标签名;在html中不区分大小写
注意点:要设置的值存在的话,修改原来的值;不存在的话,添加

孩子、兄弟节点属性
firstElementChild 某个节点的第一个孩子元素节点
lastElementChild 某个节点的最后一个孩子元素节点
nextElementSibling 某个节点的下一个兄弟元素节点
previousElementSibling 某个节点的上一个兄弟元素节点
childElementCount 该节点子元素的数量
innerHTML 获取元素内部的HTML代码
textContent 该元素内部的text

Text类型
文本节点。包含的是可以按照字面解释的存文本内容。

方法名作用调用者参数返回值
length文本长度
appendData()追加文本文本节点要追加的文本内容追加后的文本
deleteData()删除文本文本节点两个参数(index_start,count)删除后的文本
insertData()插入文本文本节点两个参数(index_start,要插入的文本)插入后的文本
replaceData()替换文本文本节点三个参数(index_start,count,替换的文本)替换后的文本
splitText()将一个文本节点分为两个文本节点分割点的位置分割好的后面的文本节点
substringData()提取文本节点中的字符串文本节点两个参数(index_start,count)提取出来的字符串,(不改变原文本)
createTextNode()创建一个文本节点document文本内容text

Comment(注释)类型
注释:
HTML <!-- -->
CSS /* */
JS 单行//多行/* */
方法:
createComment();
作用:创建注释节点

DOM节点操作

  1. appendChild()
    作用:向一个父节点中添加一个新的子节点
    语法:父节点.appendChild(新的子节点);
    注意点:任何dom节点不能同时出现在文档的多个位置,如果追加的节点是原本存在的,那只会改变节点位置
//1. 创建节点
//document.createElement("TagName");
var myDiv = document.createElement('div');
//2. 给节点添加文本内容
myDiv.innerText = "这是新创建的div";
//3. 找到页面上的一个节点
var rootDiv = document.getElementsByTagName("div")[0];
//4. 将myDiv追加到rootDiv上
rootDiv.appendChild(myDiv);
  1. insertBefore()
    作用: 在指定的子节点前面插入新的子节点
    语法:父节点.insertBefore(新节点,旧节点);

  2. removeChild()
    作用:删除某个子节点
    语法:父节点.removeChild(要删除的子节点);

  3. replaceChild()
    作用:使用指定的子节点替换已有的新节点
    语法:父节点.replaceChild(新节点,旧节点);

  4. cloneNode()
    作用:复制节点
    语法:要复制的节点自身.cloneNode(boolean);
    参数:一个可选参数boolean,默认为false,浅克隆,只复制标签,如果为true,那就是深克隆,会复制标签和内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值