web学习笔记(二十二)DOM开始

news2024/11/18 1:31:05

目录

1.DOM简介

2.DOM树

3.DOM节点

 4.查找DOM节点方法汇总

5.查找子结点的属性

5.1父子关系

5.2兄弟关系

6.几个特殊元素的查找


1.DOM简介

DOM(Document Object Model) 也叫页面文档对象模型,是W3C组织推荐的处理可扩展标记语言(HTML 或者XML )的标准编程接口(API),W3C已经定义了一系列的DOM接口,我们只需要学会如何调用DOM接口即可,通过这些DOM接口可以改变网页的内容、结构和样式。

2.DOM树

 在DOM中文档、元素、节点都是对象。

  • 文档:一个页面就是一个文档,在DOM中使用 document表示
  • 元素:页面中的所有标签都是元素,DOM中使用element表示
  • 节点:节点大约有十二种,网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示
  • 节点之间通常分为兄弟关系和父子关系两种。

3.DOM节点

        HTML DOM树中的所有节点均可通过JavaScript进行访问,所有HTML元素(节点)均可被修改,也可以 创建或删除。

        一般地,节点至少拥有nodeType (节点类型)、nodeName (节点名称)和nod eValue (节点值)这三个 基本属性。

        console.log(p.nodeType == 1); //true 判断节点类型

        console.log(p.nodeName); //p  查找元素的名字

        console.log(p.nodeValue); //null 查找节点值

•元素(h1 p img)节点nodeType为 1     

•属性(alt src href)节点nodeType为 2

•文本(文字)节点nodeType为 3 (文本节点包含文字、空格、换行等)

       // 元素节点(标签)(权重较高)
        console.log(Node.ELEMENT_NODE); //1
          // 属性节点
          console.log(Node.ATTRIBUTE_NODE); //2
        // 文本节点
        console.log(Node.TEXT_NODE); 

 4.查找DOM节点方法汇总

(1)通过Id

格式:document.getElementById('id名');

<h1 id="red">我是标题</h1>
 <script>
        var red = document.getElementById('red');
        console.log(red);//<h1 id="red">我是标题</h1>
</script>

返回找到元素,未找到返回null。 

 (2) 通过class

 格式:document.getElementsByClassName('类名');

此方法可以一次查到多个节点,因此返回值是一个伪数组,哪怕只有一项,也需要通过索引号来取。

 var blues = document.getElementsByClassName('blue');
        console.log(blues);//HTMLCollection(1)
        console.log(Array.isArray(blues)); //false
        blues[0].style.color = 'blue';

(3)通过标签

格式: document.getElementsByTagName('标签名');

此方法可以一次查到多个节点,因此返回值是一个伪数组,哪怕只有一项,也需要通过索引号来取。

 var ps = document.getElementsByTagName('p');
        console.log(ps);//HTMLCollection(7)
        ps[0].style.color = 'red'

(4)通过name名-----主要用在表单中

格式: document.getElementsByName('name名');

  var input = document.getElementsByName('input1');
        console.log(input); //NodeList(1)

(5)通过选择器来查找-----必掌握

格式: document.querySelector('选择器');

 只能找到一个节点,如果有多个只能找到第一个节点

  var box = document.querySelector('#box p');
        console.log(box); //<p style="color: red;">我在盒子里面</p>

(6)通过选择器来查找多个-----必掌握

格式:document.querySelectorAll(选择器);

返回值是一个伪数组,哪怕只有一项,也需要通过索引号来取。

 var box1 = document.querySelectorAll('#box p');
        console.log(box1); //NodeList(4)

5.查找子结点的属性

5.1父子关系

(1)父节点.childNodes           查找的是直接后代    查询结果不是纯元素节点   结果是一个伪数组

<body>
      <ul>
        <li>iii</li>
        <li>i222</li>
        <li>i3334</li>
      </ul>
</body>
<script>
    var ul=document.querySelector('ul');
    var nodes=ul.childNodes;
    console.log(nodes);//NodeList(7)
</script>

(2) 父节点.children  查找后代 查到的是纯元素节点

var ul = document.querySelector('ul');
    var nodes=ul.children;
    console.log(nodes);//nodes[i].style.fontSize='30px';
    nodes[2].style.color = 'blue';

(3)子节点.parentNode  查找父节点  是唯一,可以连着写,查找父亲的父亲节点 。

    console.log(nodes[2].parentNode);
    /*<ul>
        <li>iii</li>
        <li>i222</li>
        <li style="color: blue;">i3334</li>
    </ul>  */
    console.log(nodes[2].parentNode.parentNode);
    /* <body></body> */

5.2兄弟关系

(1)节点.nextSibling   查找下兄弟节点         查找结果不是纯元素节点(不推荐使用)

(2)节点.nextElementSibling     查找下兄弟节点         查找结果是纯元素节点(推荐使用)

 console.log( nodes[1].nextElementSibling);

 (3)节点.previousSibling      查找上兄弟节点     查找结果不是纯元素节点(不推荐使用)

 (4)节点.previousElementSibling     查找上兄弟节点      查找结果是纯元素节点(推荐使用)

console.log( nodes[1].previousElementSibling);

 (5)父结点中第一个孩子或最后一个孩子  父节点.children[0]和父节点.children[父节点.children.length-1]

6.几个特殊元素的查找

查bodydocument.body
查 htmldocument.documentElement
查 页面的路径document.URL
查 本页面的标题document.title
查  本页面的表单 document.forms
查 页面的超链接和图像 document.links

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

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

相关文章

蓝桥杯第十二届电子类单片机组程序设计

目录 前言 蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课&#xff08;点击查看&#xff09; 单片机资源数据包_2023&#xff08;点击下载&#xff09; 一、第十二届比赛原题 1.比赛题目 2.题目解读 蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客 二、…

TV-SAM 新型零样本医学图像分割算法:GPT-4语言处理 + GLIP视觉理解 + SAM分割技术

TV-SAM 新型零样本医学图像分割算法&#xff1a;GPT-4语言处理 GLIP视觉理解 SAM分割技术 提出背景TV-SAM 方法论 提出背景 论文&#xff1a;https://arxiv.org/ftp/arxiv/papers/2402/2402.15759.pdf 代码&#xff1a;https://github.com/JZK00/TV-SAM 利用了GPT-4的强大语…

深入理解Spring Security

第1章&#xff1a;Spring Security简介 大家好&#xff0c;我是小黑&#xff0c;在谈到网站安全的时候&#xff0c;Spring Security是个避不开的话题。它就像是个守门员&#xff0c;决定谁能进入我们的网站&#xff0c;又能在网站的哪些角落里走动。简单来说&#xff0c;Sprin…

语音合成(TTS) GPT-SoVITS认知

写在前面 小伙伴推荐&#xff0c;简单了解相对之前试过的其他的TTS项目&#xff0c;GPT-SoVITS的优点简单易用&#xff0c;文档完整&#xff0c;默认的模型效果就很好理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候…

智能驾驶控制规划理论学习02-基于搜索的路径规划算法

目录 一、路径搜索问题 二、图论基础 三、图搜索方法 1、广度优先搜索&#xff08;BFS&#xff09; bfs与dfs的区别 bfs的搜索过程 bfs的算法实现 2、迪杰斯特拉算法&#xff08;Dijkstra&#xff09; 核心思想 优先级队列 Dijkstra搜索过程 Dijkstra优缺点…

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下&#xff1a; -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…

前端mock数据 —— 使用Apifox mock页面所需数据

前端mock数据 —— 使用Apifox 一、使用教程二、本地请求Apifox所mock的接口 一、使用教程 在首页进行新建项目&#xff1a; 新建项目名称&#xff1a; 新建接口&#xff1a; 创建json&#xff1a; 请求方法&#xff1a; GET。URL&#xff1a; api/basis。响应类型&#xff1…

用Flutter开发App:助力您的移动业务腾飞

一、Flutter简介 Flutter是Google推出的用于构建多平台应用程序的开源UI框架。它使用Dart语言编写&#xff0c;可以编译为原生机器代码&#xff0c;从而提供卓越的性能和流畅的用户体验。 二、Flutter的优势 一套代码&#xff0c;多平台部署&#xff1a;Flutter可以使用一套代…

183896-00-6,Biotin-C3-PEG3-C3-NH2,可以选择性降解靶蛋白

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;183896-00-6&#xff0c;Biotin-C3-PEG3-C3-NH2&#xff0c;Biotin-C3-PEG3-C3-amine&#xff0c;生物素-C3-PEG3-C3-胺 一、基本信息 【产品简介】&#xff1a;Biotin-PEG3-C3-NH2是一种PROTAC linker&#xff0c;…

Redis在中国火爆,为何MongoDB更受欢迎国外?

一、概念 Redis Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。Redis是由Salvatore Sanfilippo于2009年启动开发的&#xff0c;首个版本于同年5月发布。 MongoDB MongoDB…

Apache Bench(ab )压力测试

目录 参数说明示例1&#xff1a;压力测试示例2&#xff1a;测试post接口post数据文件该如何编写&#xff1f; apr_pollset_poll: The timeout specified has expired (70007)apr_socket_recv: Connection reset by peer (104)参考 参数说明 官方文档参考这里。 ab -c 100 -n …

JVM——JVM与Java体系结构

文章目录 1、Java及JVM简介1.1、Java是跨平台的语言1.2、JVM是跨语言的平台 2、Java发展里程碑3、Open JDK和Oracle JDK4、虚拟机与JVM4.1、虚拟机4.2、JVM 5、JVM整体结构6、Java代码执行流程7、JVM的架构模型7.1、基于栈式架构的特点7.2、基于寄存器架构的特点 8、JVM的生命周…

使用pytorch实现一个线性回归训练函数

使用sklearn.dataset 的make_regression创建用于线性回归的数据集 def create_dataset():x, y, coef make_regression(n_samples100, noise10, coefTrue, bias14.5, n_features1, random_state0)return torch.tensor(x), torch.tensor(y), coef 加载数据集&#xff0c;并拆分…

蓝桥杯_定时器的基本原理与应用

一 什么是定时器 定时器/计数器是一种能够对内部时钟信号或外部输入信号进行计数&#xff0c;当计数值达到设定要求时&#xff0c;向cpu提出中断处理请求&#xff0c;从而实现&#xff0c;定时或者计数功能的外设。 二 51单片机的定时/计数器 单片机外部晶振12MHZ&#xff0c;…

leetcode 重复的子字符串

前要推理 以abababab为例&#xff0c;这里最主要的就是根据相等前后缀进行推导 s [ 0123 ] 如 t【 0123 】 f 【01 23 】 后两个分别是前后缀&#xff0c;第一个是总的字符串&#xff0c;然后可以推导 //首先还是算出…

【JavaEE】网络原理: HTTP协议相关内容

目录 HTTP 是什么 理解HTTP 协议的工作过程 HTTP 协议格式 抓包工具的使用 抓包工具的原理 抓包结果 HTTP请求 HTTP响应 协议格式总结 HTTP 请求 (Request) 认识 URL 关于 URL encode 认识 "方法" (method) get方法 post方法 其他方法 认识请求 &q…

Linux小项目:在线词典开发

在线词典介绍 流程图如下&#xff1a; 项目的功能介绍 在线英英词典项目功能描述用户注册和登录验证服务器端将用户信息和历史记录保存在数据中。客户端输入用户和密码&#xff0c;服务器端在数据库中查找、匹配&#xff0c;返回结果单词在线翻译根据客户端输入输入的单词在字…

李宏毅机器学习入门笔记——第四节

自注意力机制&#xff08;常见的神经网络结构&#xff09; 上节课我们已经讲述过 CNN 卷积神经网络 和 spatial transformer 网络。这次讲述一个其他的常用神经网络自注意力机制神经网络。 对于输入的变量长度不一的时候&#xff0c;采用frame的形式&#xff0c;进行裁剪设计。…

Astra Pro点云代码

github上找到的python读取点云的代码 import timeimport cv2 as cv import numpy as np import open3d from openni import _openni2 from openni import openni2SAVE_POINTCLOUDS True # 是否保存点云数据def get_rgbd(color_capture, depth_stream, depth_scale1000, dept…

猫头虎分享已解决Bug || 依赖问题:DependencyNotFoundException: Module ‘xyz‘ was not found

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …