当前位置: 首页 > news >正文

DOM文档对象模型

前言

        DOM(Document Object Model) 文档对象模型,是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。简单来说DOM就是操作网页的api和接口。


一、Node类型属性

    1.判断节点类型 nodeType  整数返回值 9 1 3  2

<div id="one">我是一个div<!-- 注释 --><span>行内元素</span></div><div id="two">我是第二个div</div><script>// 1.nodeType 返回节点类型 返回一个整数值 文档节点 返回9console.log(document.nodeType);// 获取div  通过id获取标签var div1 = document.getElementById('one');console.log(div1);console.log(div1.nodeType,'元素节点');console.log(div1.attributes.id.nodeType,'属性节点');


    2.返回节点纯大写名称 nodeName DIV BODY

 var div1 = document.getElementById('one');console.log(document.body.nodeName);


    3.返回文本字符 nodeValue

console.log(div1.firstChild.nodeValue);


    4.textContent 返回元素和后代元素文本内容 

var div1 = document.getElementById('one');
console.log(div1.textContent)


    5.nextSibling 获取同级节点下一个节点

var div1 = document.getElementById('one');
var div2 = document.getElementById('two');
console.log(div1.nextSibling,'获取后一个节点');


    6.previousSibling 获取同级节点前一个节点

var div1 = document.getElementById('one');
var div2 = document.getElementById('two');
console.log(div2.previousSibling,'获取前一个节点');


    7.获取父节点 parentNode

console.log(div1.parentNode);


    8.获取父元素节点 parentElement

console.log(div1.parentElement);


    9.获取元素的子节点 childNodes 类数组对象 包括文本注释...节点

console.log(div1.childNodes);
console.log(Array.isArray(div1.childNodes));


    10.获取元素的元素节点 children 类数组对象 

console.log(div1.children);


    11.firstChild  获取元素第一个子节点

console.log(document.body.firstChild);


    12.lastChild  获取元素最后一个子节点

console.log(document.body.lastChild);

二、DOM操作方法

    增删插替换都是由父元素调用
    新增节点:appendChild(新节点)

//创建一个节点 createElement();
var div =  document.createElement('div');
//  给元素 设置文本内容 innerHtml innerText
div.textContent = 'four';
document.body.appendChild(div);


    插入节点:insertBefore(插入的节点,参考节点)

//插入节点 insertBefore(要插入的节点,参考节点)
var div =  document.createElement('div');
div.textContent = 'four';
//  获取参考节点 
console.log(document.body.children,'获取当前元素所有子元素节点');
var two = document.body.children[1];
document.body.insertBefore(div,two);


    替换节点:replaceChild(替换的节点,被替换的节点)

/**
* 替换节点 replaceChild(替换的节点,被替换的节点)
*/
var div =  document.createElement('div');
div.textContent = 'four';
var one = document.body.children[0];
document.body.replaceChild(div,one);


    删除节点: removeChild(删除的节点)

/**
* 删除节点 removeChild(要删除谁)
*/
var two = document.body.children[1];
document.body.removeChild(two);

    克隆节点 :cloneNode(true/false);
        要克隆谁 谁调用cloneNode true深克隆 既克隆节点样式以及内容
        false只克隆节点样式不克隆内容

什么是深克隆,什么是浅克隆?
          1.深克隆指的是既克隆节点的样式,还克隆节点的内容
          2.浅克隆指的是只克隆节点的样式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div{width: 100px;height: 100px;background-color: pink;}</style>
</head>
<body><div>我是块级元素</div><script>var div = document.querySelector('div');// 克隆节点        cloneNode(true/flase)   默认是false  浅克隆      true  深克隆var newNode = div.cloneNode(true);document.body.appendChild(newNode);</script>
</body>
</html>

http://www.lryc.cn/news/240453.html

相关文章:

  • 【Django-DRF】多年md笔记第5篇:Django-DRF的Request、Response和视图详解
  • mongo DB -- aggregate分组查询后字段展示
  • 禁止linux shell 终端显示完整工作路径,如何让linux bash终端不显示当前工作路径
  • error: ‘ui/ui_uimainwindow.h‘ file not found
  • 【高级网络程序设计】Week2-3 HTML
  • 来聊聊JVM中的类加载过程以及双亲委派模型(学习Java必知内容)
  • scala的类介绍
  • 1.Gin 介绍
  • 华三无线控制器WX2540H配合准入做Portal认证
  • OAK相机通过振动测试!
  • 使用Pytorch从零开始构建RNN
  • Linux之实现简易的shell
  • 如何实现在公网下使用navicat图形化工具远程连接本地内网的MariaDB数据库
  • MySQL InnoDB 引擎底层解析(三)
  • 浅析基于智能音视频技术的城市重要场馆智能监控系统设计
  • hdu-lcy算法培训班 入门第一讲 数学基础
  • 获取ip属地(ip2region本地离线包-超简单)
  • 主流的低代码平台有哪些?程序员应该如何与低代码相处?
  • 华为---OSPF网络虚连接(Virtual Link)简介及示例配置
  • Python函数式编程:让你的代码更优雅更简洁
  • 艺术作品3D虚拟云展厅能让客户远程身临其境地欣赏美
  • 负载均衡简介
  • 【高级网络程序设计】Week2-1 Sockets
  • quickapp_快应用_requestHeader
  • FPGA----ZCU106使用petalinux 2019.1的第一个app开发
  • 华为ac+fit漫游配置案例
  • Jenkins 配置节点交换内存
  • 二百零七、Flume——Flume实时采集5分钟频率的Kafka数据直接写入ODS层表的HDFS文件路径下
  • 【实验】配置用户自动获取IPv6地址的案例
  • 手撕A*算法(详解A*算法)