1、查询获取元素(查)

1.1、根据ID获取
document.getElementById(‘id’);
1.2、根据标签名获取1(使用 getElementsByTagName() 方法可以返回带有指定标签名的对象的集合。)
element.getElementsByTagName(‘标签名’);

 注意:
1. 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
2. 得到元素对象是动态的
3. 如果获取不到元素,则返回为空的伪数组(因为获取不到对象)

1.3、根据标签名获取2 (获取某个元素(父元素)内部所有指定标签名的子元素.)
element.getElementsByTagName(‘标签名’);

注意:父元素必须是单个对象(必须指明是哪一个元素对象). 获取的时候不包括父元素自己。

1.4、根据HTML5新增属性获取

  1. document.getElementsByClassName(‘类名’);// 根据类名返回元素对象集合

  2. document.querySelector(‘选择器’); // 根据指定选择器返回第一个元素对象

  3. document.querySelectorAll(‘选择器’); // 根据指定选择器返回全部对象

提醒:

querySelector 和 querySelectorAll里面的选择器是可以加相关的符号的也可以直接就是标签名,如果需要加符号的话class是小数点,ID是#号,比如:document.querySelector(’#nav’);

1.5、获取、设置和移除属性值(自定义属性操作)
获取
1.5.1、 element.属性 获取属性值。
1.5.2、 element.getAttribute(‘属性’)

两者区别:
 element.属性 获取内置属性值(元素本身自带的属性)
 element.getAttribute(‘属性’); 主要获得自定义的属性 (标准) 我们程序员自定义的属性
设置
 element.属性 = ‘值’ 设置内置属性值。
 element.setAttribute(‘属性’, ‘值’);

区别:
 element.属性 设置内置属性值
 element.setAttribute(‘属性’); 主要设置自定义的属性 (标准)
移除

 element.removeAttribute(‘属性’);

1.6、特殊对象获取
1、直接获取body对象
doucumnet.body // 返回body元素对象
2、获取HTML对象
document.documentElement // 返回html元素对象

查询方法总结( 3项)

  1. DOM提供的API 方法: getElementById、getElementsByTagName 古老用法 不太推荐
  2. H5提供的新方法: querySelector、querySelectorAll 提倡
  3. 利用节点操作获取元素: 父(parentNode)、子(children)、兄(previousElementSibling、
    nextElementSibling) 提倡

2、增加元素节点(增)

1、创建节点

 *document.createElement('tagName')*

document.createElement() 方法创建由 tagName 指定的 HTML 元素。因为这些元素原先不存在,
是根据我们的需求动态生成的,所以我们也称为动态创建元素节点。

2、添加节点

2.1、 node.appendChild(child)

node.appendChild() 方法将一个节点添加到指定父节点的子节点列表末尾。类似于 CSS 里面的
after 伪元素。

2.2、 node.insertBefore(child, 指定元素)
node.insertBefore() 方法将一个节点添加到父节点的指定子节点前面。类似于 CSS 里面的 before
伪元素。

3、删除元素节点(删)

3.1、node.removeChild(child)
node.removeChild() 方法从 DOM 中删除一个子节点,返回删除的节点。

4、修改元素节点或者元素内容(改)

主要修改dom的元素属性,dom元素的内容、属性, 表单的值等
四个方法

1、 修改元素属性: src、href、title等
2、 修改普通元素内容: innerHTML 、innerText
3、 修改表单元素: value、type、disabled等
4、 修改元素样式: style、className

****改变内容****

element.innerText(’ ‘)
从起始位置到终止位置的内容,在其中的内容不会去除HTML标签
element.innerHTML(’ ')
从起始位置到终止位置的内容,去除HTML标签的同时保留标签的属性样式

****改变样式****
element.style       改变元素样式
element.className改变元素类名

扩展(元素创建的三个方法)
document.write()
element.innerHTML
document.createElement()

区别:

  1. document.write 是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘
  2. innerHTML 是将内容写入某个 DOM 节点,不会导致页面全部重绘
  3. innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构稍微复杂
  4. createElement() 创建多个元素效率稍低一点点,但是结构更清晰
    总结:不同浏览器下,innerHTML 效率要比 creatElement 高

5、鼠标操作事件

5.1、鼠标操作事件

5.2、鼠标操作事件2

5.2.1、禁止鼠标右键菜单
contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单
document.addEventListener(‘contextmenu’, function(e) {
e.preventDefault();
})

5.2.2、禁止鼠标选中(selectstart 开始选中)

      *document.addEventListener('selectstart', function(e) {e.preventDefault();})*

5.3 鼠标事件对象

event对象代表事件的状态,跟事件相关的一系列信息的集合。现阶段我们主要是用鼠标事件对象
MouseEvent 和键盘事件对象 KeyboardEvent。

JavaScript DOM / BOM (查询获取元素对象【增、删、改、查】 )以及常见鼠标事件相关推荐

  1. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  2. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  3. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  4. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

  5. pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...

  6. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)

    1. URL 概述 import "net/url" url 包解析 URL 并实现了查询的转码.URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案( ...

  7. list 增 删 改 查 及 公共方法

    1 # 热身题目:增加名字,并且按q(不论大小写)退出程序 2 li = ['taibai','alex','wusir','egon','女神'] 3 while 1: 4 username = i ...

  8. Hibenate工具类(实现增/删/改/查)

    自己学习的时候,顺手写的.主要为了减少重复操作!感觉还是可以的! package com.hr.utils;import java.util.List;import org.hibernate.Que ...

  9. 学生信息管理系统——JAVA 语言版(主页面+增+删+改+查+退)

    学生信息管理系统 前言 一.问题分析 二.学生信息管理系统程序实现思路 三.Student类的创建 程序思路 Student类代码 四.StudentManager类的创建 程序思路 StudentM ...

最新文章

  1. 如何使用LocalBroadcastManager?
  2. CTFshow 命令执行 web53
  3. 自由群,外代数和泛包络代数
  4. 微信程序开发系列教程(一)开发环境搭建
  5. 【AI视野·今日CV 计算机视觉论文速览 第222期】Fri, 18 Jun 2021
  6. Helios Service Release 2安装SVN
  7. java 事件分发机制_用两段代码带你看懂事件分发机制
  8. 票价最低10元 北京大兴国际机场线票价方案正式启用
  9. checkstyle配置文件说明
  10. Apache提示You don't have permission to access / on this server问题解决
  11. 【最新消息】阿里宣布无限期延迟复工,字节跳动、腾讯......等企业也再次延迟!...
  12. realmex7pro能用鸿蒙系统吗,realmex7pro有nfc吗-realmex7pro支持红外遥控功能吗
  13. progeCAD 2009专业版
  14. 韩顺平循序渐进学java坦克大战爆炸图
  15. 如何把语音转换成文字呢?
  16. 计算机专业毕业设计致谢,计算机专业毕业论文致谢范文
  17. 想要从编程小白成为达人,这些你必须知道!(附STM32学习指南)
  18. 用python将txt文件中的内容导入到excel文件中
  19. ps 海报文字设计技巧
  20. Web中常用字体介绍

热门文章

  1. PHP计算字符串长度(中文算2个字符,英文数字算一个字符)
  2. atitit.企业管理----商业间谍策略的使用与防务
  3. 理论力学知识要点(六)
  4. 百度地图实现活动定位打卡
  5. 步进电机-T型加减速
  6. Altium Designer20常用使用快捷键
  7. 手机数控模拟器安卓版_数控机床模拟器手机版
  8. 推荐几个程序员最爱用的Java学习网站!
  9. VC++使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压(附源码)
  10. 2k5 全球手机销售数量及 2k5Q4五大手机制造商 市场份额排名