javascript-核心知识总结

news2025/1/13 19:37:27

目录

(一)DOM基础

1、DOM对象

2、节点类型

3、获取元素

4、创造元素

5、插入元素

6、删除元素

7、复制元素

8、替换元素

(二)DOM进阶

1、用DOM对象对HTML属性操作

2、用DOM对象对CSS操作

3、DOM查找(遍历)

4、innerHTML和innerText

(三)事件基础

1、 鼠标事件、

2、键盘事件、

3、表单事件

4、 编辑事件、

5、页面事件

(四)事件进阶

1、事件监听器

2、event对象:

3、this

(五)window对象

1、窗口操作

2、对话窗

3、定时器

4、location对象

5、navigator对象

(六)documen对象

1、document对象属性

 2、document对象方法


(一)DOM基础

1、DOM对象

DOM,全称是“Document Object Model(文档对象模型)”,它是由W3C定义的一个标准。

DOM的结构是采用“树形结构”,用“树节点”的形式来表示页面中的每一个元素,HTML元素是树根,也叫根元素,在html下面,我们发现有head和body这两个分支,它们位于同一层次上,并且有着共同的父节点(即html),所以它们是兄弟节点。以此类推。

 2、节点类型

在JavaScript中,节点分为很多种类型。DOM节点共有12种类型,但是常见的只有下面3种

  • 元素节点:表示元素
  • 属性节点:表示属性
  • 文本节点:表示文本
<div id="wrapper">绿叶学习网</div>

 在JavaScript中,我们可以使用nodeType属性来判断一个节点的类型。不同节点的nodeType属性值如下:

3、获取元素

  • document.getElementById("id名"):通过id来选中元素
  • document.getElementsByTagName("标签名"):通过标签名来选中元素
  • document.getElementsByClassName("类名"):想通过class来选中元素
  • document.querySelector("选择器"):使用CSS选择器来获取选取满足选择条件的第1个元素
  • document.querySelectorAll("选择器"):使用CSS选择器来获取选取满足选择条件的所有元素
  • document.getElementsByName("name名"):通过name属性来获取表单元素
  • document.title:获取title元素
  • document.body:获取body元素

4、创造元素

  • 创建元素节点:createElement( ):
  • 创建文本节点:createTextNode( )

5、插入元素

在JavaScript中,插入元素有以下两种方法

  • A.appendChild(B):A表示父元素,B表示动态创建好的新元素,一个新元素B插入到父元素A的内部子元素的“末尾”
  • A.insertBefore(B,ref):A表示父元素,B表示新子元素。ref表示指定子元素,表示在ref之前插入B

6、删除元素

在使用removeChild( )方法删除元素之前,我们必须找到以下2个元素。被删除的子元素。被删除子元素的父元素。

A.removeChild(B):删除父元素A下的某个子元素B

7、复制元素

obj.cloneNode(bool)

参数obj表示被复制的元素,而参数bool是一个布尔值,取值如下:

  • 1或true:表示复制元素本身以及复制该元素下的所有子元素。
  • 0或false:表示仅仅复制元素本身,不复制该元素下的子元素。

8、替换元素

A.replaceChild(new,old):在父元素A中,用新子元素new代替旧子元素old

(二)DOM进阶

1、用DOM对象对HTML属性操作

  • 获取HTML属性值:
    1、元素名.属性名。
    2、元素名.getAttribute("属性名"):来获取元素某个属性的值
  • 设置HTML属性值:
    1、元素名.属性名=值
    2、元素名.setAttribute("属性名","值")
  • 删除元素:元素名.removeAttribute("属性名")
  • 判断元素是否含有某个属性:元素名.hasAttribute("属性名")

元素名是DOM对象,是通过getElementById()等方法等获取到的元素节点。

2、用DOM对象对CSS操作

  • 获取一个CSS属性的值:getComputedStyle(元素名).CSS属性名
  • 设置CSS属性值:
     1、style对象:元素名.style.属性名="值"
     2、cssText:元素名.style.cssText="属性1:值1, ......"  //同时设置多个CSS属性

元素名是DOM对象,是通过getElementById()等方法等获取到的元素节点。

3、DOM查找(遍历)

  • 查找父元素:元素名.parentNode
  • 查找子元素:
    1、childNodes、firstChild、lastChild 。//childNodes获取的是所有的子节点,子节点是包括元素节点以及文本节点的,例如包括换行也被算作子元素
    2、children、firstElementChild、lastElementChild //children获取的是所有的元素节点,不包括文本节点
  • 查找兄弟元素:
    1、previousSibling、nextSibling:查找前一个兄弟节点、查找后一个兄弟节点(包括换行)
    2、previousElementSibling、nextElementSibling:查找前一个兄弟、查找后一个兄弟(不包括换行)

元素名是DOM对象,是通过getElementById()等方法等获取到的元素节点。

4、innerHTML和innerText

innerHTML:获取或设置元素内部所有的内容,
innerText:获取和设置一个元素的“内部文本”

(三)事件基础

一个动作之后会引发一件行动,就是一个事件,例如,当我们点击一个按钮时,会弹出一个对话框。其中,“点击”就是一个事件,“弹出对话框”就是我们在点击这个事件里面做的一些事情

JavaScript中,一个事件包含3部分:

  • 事件主角:是按钮?还是div元素?还是其他?
  • 事件类型:是点击?还是移动?还是其他?
  • 事件过程:这个事件都发生了些什么?

JavaScript常见的事件共有以下5种:鼠标事件、键盘事件、表单事件、编辑事件、页面事件。

在JavaScript中,调用事件的方式有两种:在script标签中调用、在元素中调用

1、 鼠标事件、

2、键盘事件、

  • 键盘按下:onkeydown
  • 键盘松开:onkeyup

3、表单事件

  • onfocus和onblur:onfocus获取焦点时触发的事件,onblur表示失去焦点时触发的事件
  • onselect:选中“单行文本框”或“多行文本框”中的内容时,就会触发onselect事件
  • onchange:用于“具有多个选项的表单元素”的操作,例如单选框选择某一项时触发。复选框选择某一项时触发。下拉列表选择某一项时触发。

4、 编辑事件、

  • oncopy:防止页面内容被复制
  • onselectstart:防止页面内容被选取
  • oncontextmenu:禁止使用鼠标右键

5、页面事件

  • onload:表示文档加载完成后再执行的一个事件
  • onbeforeunload:表示离开页面之前触发的一个事件

(四)事件进阶

如果要给元素添加一个事件,可采用以下两种方式:

事件处理器:通过操作HTML属性的方式来实现添加事件的方式(只能添加一个事件)

事件监听器:为一个元素添加多个相同的事件(添加多个事件)

1、事件监听器

绑定事件:元素名.addEventListener(事件类型 ,函数名,false)

解绑事件:元素名.removeEventListener(事件类型 ,函数名,false)

元素名:一个DOM对象,指的是使用getElementById( )、getElementsByTagName( )等方法获取的元素节点

事件类型:如单击事件用click,鼠标移入用mouseover等。一定要注意,这个事件类型是不需要加上“on”前缀的。

false:表示事件冒泡阶段调用

2、event对象:

event对象:保存事件发生的时候,这个事件有关的详细信息

 event对象的常用属性:

event.keyCode返回的是一个数值,常用的按键及对应的键码如下:

3、this

在事件操作中,可以这样理解:哪个DOM对象(元素节点)调用了this所在的函数,那么this指向的就是哪个DOM对象

(五)window对象

在JavaScript中,一个浏览器窗口就是一个window对象,JavaScript会把一个窗口看成一个对象,这样我们就可以用这个对象的属性和方法来操作这个窗口。实际上,我们在打开一个页面时,浏览器都会自动为这个页面创建一个window对象。

window对象存放了这个页面的所有信息,为了更好地分类处理这些信息,window对象下面又分为很多对象,如下:

 

  window对象的常用方法:

1、窗口操作

在JavaScript中,窗口常见的操作有两种:

  • 打开窗口:window.open(url,target)
  • 关闭窗口:window.close()

url:指的是新窗口的地址,如果url为空,则表示打开一个空白窗口

target:打开方式,与a标签中target属性的取值是一样,_blank(默认值):在新窗口中打开,self:在当前窗口中打开

2、对话窗

  • alert("提示文字"):只用于提示文字
  • confirm("提示文字"):不仅提示文字,还提供确认
  • prompt("提示文字"):对话框不仅会提示文字,还会返回一个字符串

3、定时器

  • setTimeout(code,time )和clearTimeout( ):一次性设置和取消
  • setInterval(code,time)和clearInterval( ):重复性设置和取消

参数code可以是一段代码,可以是一个函数,也可以是一个函数名。

参数time是时间,单位为毫秒,表示要过多长时间才执行code中的代码

4、location对象

location子对象来操作当前窗口的URL,有三个重要属性:

  • window.location.href:来获取或设置当前页面的地址
  • window.location.search:获取和设置当前页面地址“?”后面的内容(url的参数,用于数据库查询) 
  •   window.location.hash:来获取和设置当前页面地址井号(#)后面的内容(#锚点链接)

5、navigator对象

window.navigator.userAgent:获取浏览器的类型

(六)documen对象

1、document对象属性

 2、document对象方法

 

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

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

相关文章

浅析基于AI智能识别技术边缘计算硬件在智慧食安监管场景中的应用

一、背景分析 自2014年开始&#xff0c;国家市场监督管理总局在强化企业主体责任、严格实施全过程监管、创新监管方式的方针下&#xff0c;推行“互联网明厨亮灶"工程建设。系统以四个端为整体规划&#xff0c;实现亮后厨、亮证、亮照、亮评估&#xff0c;通过以网管网措…

微信小程序xr-frame实现多光源效果

1.基础知识&#xff1a; 灯光 灯光组件Light用于给场景提供照明&#xff0c;也是阴影的核心。相机组件一般被代理到灯光元素XRLight中使用&#xff0c;其派生自XRNode&#xff0c;对应在xml中的标签为xr-light。 主光源以及参数 类型uniforms宏说明书写环境光颜色和亮度u_a…

Linux Shell 实现一键部署virtualbox

VirtualBox 前言 VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发&#xff0c;由Sun Microsystems公司出品的软件&#xff0c;使用Qt编写&#xff0c;在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public Licens…

从零开始 Spring Boot 30:数据校验

从零开始 Spring Boot 30&#xff1a;数据校验 图源&#xff1a;简书 (jianshu.com) 在从零开始 Spring Boot 13&#xff1a;参数校验 - 红茶的个人站点 (icexmoon.cn)一文中&#xff0c;我讨论了一些可以用于参数校验的注解。实际上这些注解都是来自于Jakarta Bean Validatio…

第7章异常、断言和曰志

Java和C异 在C中&#xff0c;throw说明符在运行时执行。Java在编译时执行。 处理错误 异常处理的任务就是将控制权从产生错误的地方转移到能够处理这种情况的错误处理器。 如果由于出现错误而使得某些操作没有完成&#xff0c;程序应该&#xff1a;返回到一种安全状态&#…

ChatGLM + PEFT 进行finetune

一、前言 1.1 硬件需求 注&#xff1a;r 为LoRA 维数大小&#xff0c;p 为前缀词表大小&#xff0c;l 为微调层数&#xff0c;ex/s 为每秒训练的样本数。gradient_accumulation_steps 参数设置为 1。上述结果均来自于单个 Tesla V100 GPU&#xff0c;仅供参考。 1.2 微调方法…

开放原子训练营第一季——铜锁探“密” 圆满落幕!

【开放原子训练营第一季结营总结】——铜锁探“密” 开放原子训练营第一季「铜锁探密」由开放原子开源基金会&铜锁社区共同举办&#xff0c;包含 5 次课程&#xff0c;以“抽丝剥茧&#xff0c;循序渐进&#xff0c;一起揭开商用密码的面纱”为主题&#xff0c;让参与者更加…

c++面向对象之类

一、类的定义 class 类名{成员属性构造函数析构函数成员函数 }Person.h #include <string> #include <iostream> using namespace std;class Person {int m_age;string m_name;Person();Person(int age,string name);~Person();int getAge();void setAge(int age…

蓝鲸平台通过标准运维 API 安装 Agent

目录 一、背景 二、目的 三、创建安装agent流程 四、通过标准运维 API 安装 Agent 五、总结 一、背景 蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent&#xff0c;不能达到完成自动化安装agent的效果。想通过脚本一键安装agent&#xff0c;而不需要在蓝鲸平台进行过…

Golang指针的操作以及常用的指针函数

目录 指针的操作 定义指针 获取变量地址 解引用指针 指针作为函数参数 指针的空值 常用的指针函数 new 函数 make 函数 append 函数 copy 函数 指针的操作 在Go语言中&#xff0c;指针是一种非常重要的类型&#xff0c;可以用来传递变量的地址而不是变量本身。 定…

【leetcode刷题总结】——代码随想录(链表总结)

代码随想录按照数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构&#xff0c;再从简单刷起&#xff0c;做了几个类型题目之后&#xff0c;再慢慢做中等题目、困难题目。 以下是个人刷题总结&#xff0c;官…

多个Node.js版本之间切换

本篇文章会讲windows和Mac系统下实现多个node.js版本之间的切换。 1.windows下采用nvm&#xff08;nvm-window&#xff09; 2.Mac下采用nvm和n 注&#xff1a;window和mac下的nvm地址是不一样的 一、windows系统 什么是nvm&#xff1f; nvm是一个简单的bash脚本&#xff…

真题详解(有限自动机)-软件设计(七十七)

确定有限自动机 和 不确定有限自动机 解析&#xff1a; M1的A当0的时候&#xff0c;会变成A&#xff0c;也可能变成B&#xff0c; 所以M1是不确定有限自动机。 M2的A1的时候只会使A&#xff0c;0的时候只会是B B的0只会是B&#xff0c;1的时候只会是C。 C0的时候只会是B&a…

中小型企业需要“数据防泄露”吗?

数据防泄露是指企业采取的各种管理、技术与监督措施&#xff0c;以防止敏感和关键数据在传输、存储与使用过程中被未经授权访问或窃取&#xff0c;从而导致机密性、完整性或可用性受到损害。 数据防泄露工作通常包括数据分类与风险评估、权限管理与访问控制、加密与安全技术、数…

基于Gabor-小波滤波深度图表面法线的特征提取算法【通过正常Gabor-小波的直方图进行2D或3D特征提取】研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Bean的生命周期揭秘:从诞生到消亡,一个对象的壮丽演绎!

大家好&#xff0c;我是你们的小米。今天我要给大家揭秘一下Java开发中重要的概念——Spring Bean的生命周期。作为Java开发者&#xff0c;无论是在面试还是实际工作中&#xff0c;了解Bean的生命周期都是必备的知识点。让我们一起来深入了解吧&#xff01; 什么是Spring Bean …

【zabbix】PostgreSQL表信息查询收集监控

昨天开发那边给了一个需求&#xff0c;每隔一段时间查询一下数据库某表中的数据是否在最近更新&#xff0c;让我这边做一个监控信息收集 一、agent linux侧配置 这边目前就直接在zabbix上实现&#xff0c;首先就是脚本&#xff0c;我用python2实现 脚本名&#xff1a;check_y…

软件测试学什么——如何才能按时上线?

目录 引言 一、提前介入测试&#xff0c;认真做好需求分析。 二、测试计划没必要花太多精力。 三、测试用例编写 四、测试执行的关键点 五、测试环境 【一套系统提升学习的好资料】 阅读书籍文档 总结 引言 上线&#xff0c;永远是软件测试工程师最关注的问题。 上线…

Linux文件系统学习笔记

笔记 修改文件属性与权限数字修改文件权限符号修改文件权限 目录与文件的意义文件的权限目录的权限 路径 修改文件属性与权限 chgrp:修改用户组 chown:修改拥有者 chmod:修改用户权限 其中修改权限:chmod可以用数字修改或者符号修改 数字修改文件权限 一共有三种身份:拥有者…

freeswitch的2833和inband对接方案

概述 freeswitch支持三种模式的DTMF传输方式&#xff0c;分别时inband、INFO、2833。 在传统的PSTN网络中&#xff0c;所有的DTMF码都是inband模式&#xff0c;所以VOIP网络和PSTN网络对接中&#xff0c;需要将DTMF码做格式转换&#xff0c;通常是2833和inband之间的转换。 …