JavaScript之DOM(九)

news2024/12/24 0:00:06

JavaScript之DOM

      • 1、节点类型
      • 2、常用的属性与方法
        • 2.1、访问节点的常用方法
        • 2.2、增删改节点的常用方法
        • 2.3、class的常用方法
        • 2.4、css相关操作

DOM – Document Object Model (文档对象模型),是 JS 操作 HTML 文档的接口,它最大的特点就是将文档表示为节点树,如下:
 
DOM


document对象: document对象表示整个 HTML 文档,它是 DOM 节点树的根。


DOM节点树:

  1. 根节点:节点树中只有唯一的一个根节点。
  2. 父子节点:一个父节点(parent)可以有0个或多个子节点(children);一个子节点只有一个父节点。
  3. 兄弟节点:(sibling)同属于一个父节点的多个节点。上一个兄弟:previous、下一个兄弟:next。

1、节点类型

名称描述
nodeType返回节点的类型(不常用,了解即可) 常见的返回值如下:
1、nodeType 属性返回 1,表示是一个元素节点(element)
2、nodeType 属性返回 3,表示是一个文本节点(text)
3、nodeType 属性返回 8,表示是一个注释节点(comment)
4、nodeType 属性返回 9,表示是文档节点(document)
5、nodeType 属性返回 10,表示是 DTD 节点

2、常用的属性与方法

2.1、访问节点的常用方法

//一、直接访问
//1.通过元素的id属性值来获取元素,返回的是一个元素对象
var element = document.getElementById(id_content)
//2.通过元素的name属性值来获取元素,返回的是一个元素对象的数组
var element_list = document.getElementsByName(name_content)
//3.通过元素的class属性值来获取元素,返回的是一个元素对象的数组
var element_list = document.getElementsByClassName(class_content)
//4.通过标签名获取元素,返回的是一个元素对象数组
var element_list = document.getElementsByTagName(tagName)
//5.返回匹配指定选择器的第一个元素。如果需要返回所有的元素,可以用 querySelectorAll() 方法替代
var element = document.querySelector(css选择器)

//二、间接访问
element.parentElement //父节点标签元素
element.children //所有子标签
element.firstElementChild //第一个子标签元素
element.lastElementChild //最后一个子标签元素
element.nextElementSibling //下一个兄弟标签元素
element.previousElementSibling //上一个兄弟标签元素

2.2、增删改节点的常用方法

createElement() //创建节点
appendChild() //末尾添加节点,并返回新增节点
insertBefore() //参照节点之前插入节点,两个参数:要插入的节点和参照节点
insertAfter() //参照节点之后插入节点,两个参数:要插入的节点和参照节点
replaceChild() //替换节点,两个参数:要插入的节点和要替换的节点(被移除)
removeChild() //移除节点
cloneNode() //克隆,一个布尔值参数,true为深拷贝,false为浅拷贝
importNode() //从文档中复制一个节点,两个参数:要复制的节点和布尔值(是否复制子节点)
insertAdjacentHTML() //插入文本,两个参数:插入的位置和要插入文本
//操作属性值的方法
element.getAttribute(attribute_name) //获取元素的属性值
element.setAttribute(attribute_name,attribute_value) //设置元素的属性值
//操作节点文本的方法
element.innerHTML //获取当前元素的所有文本,包括html源码和文本
element.innerText //获取当前元素的所有文本,不包含html源码,也就是不解析html源码

2.3、class的常用方法

className  //获取所有样式类名(字符串)
classList.remove(cls)  //删除指定类
classList.add(cls)  //添加类
classList.contains(cls)  //存在返回true,否则返回false
classList.toggle(cls)  //存在就删除,否则添加

2.4、css相关操作

element.style.backgroundColor="red" // 设置element的背景颜色为red
//对于没有中横线的CSS属性一般直接使用style.属性名即可:
element.style.margin
element.style.width
//对含有中横线的CSS属性,将中横线后面的第一个字母换成大写即可。如:
element.style.marginTop
element.style.borderLeftWidth

上一篇文章下一篇文章
JavaScript之BOM(八)JavaScript之事件(十)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CloudQuery一体化数据库SQL操作安全管控平台

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! CloudQuery一体化数据库SQL操作安全管控平台 导读 CloudQuery作为业界领先的面向企业的数据库安全解决方案,CloudQuery致力于打造一站式安全可靠的数据操…

【C++】右值引用和移动语义

1.左值和右值 在C中,每个表达式或者是左值,或者是右值。 左值(lvalue):可以出现在赋值表达式左侧的值,例如变量名a、数据成员a.m、下标表达式a[n]、解引用表达式*p等。左值可以被赋值和取地址。右值(rvalue):只能出现…

jdk动态代理源码分析

jdk动态代理源码分析 前言动态代理----demo 案例jdk动态代理源码创建代理对象获取类把二进制流生成文件 jdk 动态代理的原理 前言 上一篇中我们知道动态代理的使用, Javase 专题之 静态代理和动态代理 我们只知道其中的使用,但是原理是什么? 不明白原理只知皮毛不是我们的目的…

chatgpt赋能python:Python在原图上继续画的SEO

Python在原图上继续画的SEO Python是一种高级的多范式编程语言,它使用简单、易于阅读的语法以及丰富和强大的数据结构使其成为工程师的首选。Python已经成为了一种非常流行的编程语言,它用于多种应用领域,包括Web开发、数据科学、机器学习、…

区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测

区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测 目录 区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRCNN-LSTM卷积神经…

注解、原生Spring、SchemaBased三种方式实现AOP【附详细案例】

目录 一、注解配置AOP 1. 开启注解支持 2. 在类和方法加入注解 3. 测试 4. 为一个类下的所有方法统一配置切点 二、原生Spring实现AOP 1. 引入依赖 2. 编写SpringAOP通知类 3. 编写配置类bean2.xml 4 测试 三、SchemaBased实现AOP 1. 配置切面 2. 测试 往期专栏…

音视频技术开发周刊 | 296

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 22字声明、近400名专家签署、AI教父Hinton与OpenAI CEO领头预警:AI可能灭绝人类! 这份声明一经发布,便迅速得到了多伦多大学计算机科学…

基于zookeeper的kafka中间件

一、Zookeeper 概述 1、Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 2、Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理…

昨天,小灰做了人生的第一次直播!

熟悉小灰的朋友们都知道,小灰是一个非常腼腆的人。虽然我比较擅长写东西,但完全不擅长口头表达,在公开场合讲话很容易紧张。 因此,对于网上直播,小灰在以前完全不敢想象。 但是,人终究需要成长的。就在昨天…

Disco Diffusion 快速入门

Disco Diffusion 快速入门 简介快速开始进阶使用修改prompt给定指导图像修改基础参数运行参数设置运行建议模型设置参数详情 简介 Disco Diffusion(DD)是一个CLIP指导的AI图像生成技术,简单来说,Diffusion是一个对图像不断去噪的…

路径规划 | 图解RRT-Connect算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 RRT-Connect基本原理2 RRT-Connect vs. RRT3 ROS C算法实现4 Python算法实现5 Matlab算法实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等)…

chatgpt赋能python:Python实现奇数位偶数位互换的方法

Python实现奇数位偶数位互换的方法 Python是一种高级的、面向对象的编程语言,在当今的编程领域中具有广泛的应用。它被用于数据分析、机器学习、Web开发等众多领域,其简洁的语法和强大的库被开发者们广泛使用。本文将介绍Python中奇数位偶数位互换的方法…

驱动开发:内核实现SSDT挂钩与摘钩

在前面的文章《驱动开发:内核解析PE结构导出表》中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定SSDT函数的Hook挂钩操作&…

【Django 网页Web开发】07. 快捷的表单生成 Form与MoudleForm(保姆级图文)

目录 注意 正规写法是 ModelForm,下面文章我多实现效果url.py新建3个html文件数据库连接model.py 数据表1. 原始方法view.pytestOrgion.html 2. Form方法view.pytestForm.html 3. MoudleForm方法给字段设置样式面向对象的思路,批量添加样式错误信息的显示…

ASIC-WORLD Verilog(10)编写测试脚本Testbench的艺术

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&…

干货!来自北大、KAUST、斯坦福、达摩院的大模型前沿动态:表格推理、代码生成、MiniGPT-4、生成式推理...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! ChatGPT的发布使得国内外众多的研究机构掀起了一股AI热潮,而这也进一步推动了人们对大语言模型的深入研究。2023年4月26日,AI TIME举办的大模型专场四活动邀请了阿里巴巴达摩院NLP研究员…

在 IDEA 中配置 JavaFX 11

因为从 Java8/openjdk 之后,javafx 从 jdk 中移除,如果进行 JavaFX 开发需要在 module 中添加 lib,并对 IDE 进行配置,确保 jdk 可以与 javafx 正常调用。 javafx 下载路径,主页网址:https://openjfx.io/ …

开发实践|程序员是如何刷抖音、玩快手、看头条进行赚米的?

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! “ 花开堪折直须折,莫待无花空折枝。 ” 作者主页:[ https://www.weiyigeek.top ] 博客&…

【计算机组成原理与体系结构】数据的表示与运算

目录 一、进位计数制 二、信息编码 三、定点数数据表示 四、校验码 五、定点数补码加减运算 六、标志位的生成 七、定点数的移位运算 八、定点数的乘除运算 九、浮点数的表示 十、浮点数的运算 一、进位计数制 整数部分: 二进制、八进制、十六进制 --…

穿越认知峡谷

十年前,2013 年的这个时候,“互联网思维”在国内大火。我没有认真研究过这件事的来龙去脉,不过印象里 2012 年底《罗辑思维》视频栏目的开播,以及差不多同时小米手机的爆发,对“互联网思维”的大流行应该是起了重要的推…