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

目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

年度目标制定:数据驱动的深度策略,打造你的成功蓝图!

导语&#xff1a;在快节奏的生活中&#xff0c;制定年度目标不仅仅是为了完成任务&#xff0c;更是为了在一年中明确方向、聚焦重点、持续进步。而数据分析&#xff0c;则是我们制定年度目标时不可或缺的利器。通过深入挖掘数据&#xff0c;我们可以更准确地理解自己的需求、优…

数据中台的演进与实践——构建企业的数字核心_光点科技

数据中台&#xff0c;一个在近年来被频繁提及的概念&#xff0c;已经成为众多企业数字化转型的核心组成部分。然而&#xff0c;尽管它的重要性被业界广泛认可&#xff0c;对于数据中台的深入理解和有效实践仍然是许多企业面临的挑战。在本文中&#xff0c;我们将从数据中台的演…

在线原型工具有哪些比较好用?

随着云计算和5G网络的发展&#xff0c;互联网办公工具的发展 Web 这是一个不可避免的趋势。那么&#xff0c;对于产品设计团队来说&#xff0c;哪些在线设计工具值得体验呢&#xff1f;今天&#xff0c;让我们来看看一些国内外经典的在线原型工具。 即时设计 - 可实时协作的专…

React入门之react_jsx入门

简单语法写法 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script s…

yolov5v7v8目标检测增加计数功能--免费源码

在yolo系列中&#xff0c;很多网友都反馈过想要在目标检测的图片上&#xff0c;显示计数功能。其实官方已经实现了这个功能&#xff0c;只不过没有把相关的参数写到图片上。所以微智启软件工作室出一篇教程&#xff0c;教大家如何把计数的参数打印到图片上。 一、yolov5目标检测…

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(四)

该篇主要介绍了利用配置ca.cnf、server.cnf、client.cnf在certs路径下生成证书文件&#xff08;非执行bootstrap脚本&#xff0c;网上也有很多直接通过openssl命令方式生成的文章&#xff09;&#xff0c;主要参考&#xff08;概括中心思想&#xff09;官方手册&#xff0c;以及…

Android Kotlin协程实战

你能听懂的Kotlin协程课&#xff0c;跟老司机学&#xff0c;不用自己瞎折腾 认识协程 协程难在哪儿? Ja v a中不曾出现的&#xff0c;新概念概念不清晰&#xff0c;我们看到的大都是不同语言对于协程的实现或者衍生Kotlin 基础不扎实多线程编程基础太薄弱 协程是什么? 协…

快速搭建网站原型!8款网站原型软件推荐

现在&#xff0c;基于云的软件已经逐渐成为主流&#xff0c;网站原型设计工具也不例外。与桌面版本相比&#xff0c;在线原型工具具有独特的优势&#xff0c;无论您使用Linux&#xff0c;Mac 或者Windows&#xff0c;都不需要安装就可以使用这些工具。下面小编就为大家推荐8款非…

全面整理!机器学习常用的回归预测模型

Datawhale干货 作者&#xff1a;曾浩龙&#xff0c;Datawhale意向成员 前言 回归预测建模的核心是学习输入 到输出 &#xff08;其中 是连续值向量&#xff09;的映射关系。条件期望 是 到 的回归函数。简单来说&#xff0c;就是将样本的特征矩阵映射到样本标签空间。 图…

skiplist(高阶数据结构)

目录 一、概念 二、实现 三、对比 一、概念 skiplist是由William Pugh发明的&#xff0c;最早出现于他在1990年发表的论文《Skip Lists: A Probabilistic Alternative to Balanced Trees》 skiplist本质上是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;…

(k8s中)docker netty OOM问题记录

1、首先查看docker的内存占用情况&#xff1a; docker top 容器名 -u 查看内存cpu占用率&#xff08;容器名来自kubectl describe pod xxx中信息&#xff09; 可以看出内存一直增长&#xff0c;作为IO代理这是不正常的。 2、修改启动参数和配置文件 需要注意的是为了安全考…

BOOT电路

本质&#xff1a;BOOT电路本质上是单片机的引脚 作用&#xff1a;BOOT电路的作用是用于确定单片机的启动模式 使用方法&#xff1a;在单片机上电或者复位时给BOOT管脚设置为指定电平即可将单片机设置为指定启动模式。 原理&#xff1a;单片机上电或复位后会先启动内部晶振&a…

Vue的生命周期函数

今天我们来讲一讲Vue中的生命周期函数 每个Vue实例在其生命周期中都会经历多个关键阶段&#xff0c;这些阶段包括数据监听设置、模板编译、实例DOM挂载以及数据变化时的DOM更新等。同时&#xff0c;Vue提供了一系列生命周期钩子函数&#xff0c;允许开发者在这些重要阶段插入自…

EMR StarRocks实战——猿辅导的OLAP演进之路

目录 一、数据需求产生 二、OLAP选型 2.1 需求 2.2 调研 2.3 对比 三、StarRocks的优势 四、业务场景和技术方案 4.1 整体的数据架构 4.2 BI自助/报表/多维分析 4.3 实时事件分析 4.5 直播教室引擎性能监控 4.4 B端业务后台—斑马 4.5 学校端数据产品—飞象星球 4…

js 手写深拷贝方法

文章目录 一、深拷贝实现代码二、代码讲解2.1 obj.constructor(obj)2.2 防止循环引用 手写一个深拷贝是我们常见的面试题&#xff0c;在实现过程中我们需要考虑的类型很多&#xff0c;包括对象、数组、函数、日期等。以下就是深拷贝实现逻辑 一、深拷贝实现代码 const origin…

(转载)SpringCloud 微服务(三)-Seata解决分布式事务问题

ps:这个原文写的很好&#xff0c;怕后续这个地址失效&#xff0c;备份一个留着自己学习 转自&#xff1a;SpringCloud 微服务&#xff08;三&#xff09;-Seata解决分布式事务问题_seata 黑马 代码-CSDN博客 看完了黑马程序员的免费课程&#xff0c;感觉受益匪浅&#xff0c;…

基于springboot实现旅游路线规划系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游路线规划系统演示 摘要 随着互联网的飞速发展以及旅游产业的逐渐升温&#xff0c;越来越多人通过互联网获取更多的旅游信息&#xff0c;包括参考旅游文纪等内容。通过参考旅游博主推荐的旅游景点和规划线路&#xff0c;参考计划着自己的旅行&#xff0c…

智慧应急与物联网相结合:物联网技术如何提升智慧应急响应能力

目录 一、引言 二、智慧应急与物联网技术的结合 三、物联网技术提升智慧应急响应能力的途径 四、物联网技术在智慧应急中的应用案例 五、物联网技术在智慧应急中面临的挑战与解决方案 挑战一&#xff1a;技术标准与规范不统一 解决方案&#xff1a; 挑战二&#xff1a;…

双流机场到天府机场ADS-B数据导入MATLAB

MATLAB导入数据 导入的数据Excel部分截图&#xff1a; 一些处理 % 导入外部轨迹数据并转成标准形式 clear;clc; %% 导入&预处理 [NUM,TXT,RAW]xlsread(2021年10月31日CTU-TFU); time_cell RAW(3:end,1); %拉取时间数据&#xff08;cell&#xff09; time_char char(t…

MySQL里的两个“二次”

文章中所有图片均来自网络 一、double write 第一个二次是mysql一个崩溃恢复很重要的特性-重复写入。 doublewrite缓冲区是位于系统表空间中的存储区域&#xff0c;在该区域中&#xff0c;InnoDB会在将页面写入数据文件中的适当位置之前&#xff0c;从InnoDB缓冲池中刷新这些页…