DOM重点核心

    文档对象模型,是W3C推荐的处理可扩展的标记语言的标准编程接口
    我们主要针对与勇士的操作,主要有创建、增加、删除、修改、查询、属性操作、事件操作
  三种动态创建元素的区别
 document.write() //在文档中写一个标签,如果页面文档加载完毕,再调用这句话会导致页面重绘
  <button>123</button>
<script>
var btn = document.querySelector("button")
btn.onclick = function () {
document.write("<div>123</div>")
}
</script>
  element.innerHTML //创建多个元素效率更高(毕业拼接字符串采取数组形式拼接)结果稍微繁杂
 <div class="box">
</div>
<script>
var div = document.querySelector(".box")
// for (var i = 0; i < +100; i++) {
// div.innerHTML += "<a href='#'>1234</a>"
// }
var arr = []
for (var j = 0; j <= 100; j++) {
arr.push( '<a href = "#"> 1234 </a>')
}
div.innerHTML = arr.join("")
</script>
     document.createElement() //创建多个元素 效率稍微低一些 但是结构会很清晰
  <div class="box2">
</div>
<script>
var box2 = document.querySelector(".box2")
for (var i = 0; i <= 100; i++) {
var a = document.createElement("a")
box2.appendChild(a)
}
</script>

增加的主要有

    appendChild(在后面增加)、insertbefore(在前面增加)

删除

    removeChild
    修改主要是对元素的属性,DOM元素的内容、属性、表单的值等
    修改元素的属性:src、innerHTML、title等
    修改普通元素内容:innerHTML、innerText
    修改表单属性:value、type、disabled等
    修改元素样式:style/className

查询

    DOM提供的API方法:getElementByid,getElementByTagName 老方法不推荐使用
    H5新增的方法:querySelector、querySelectorAll 提倡使用
    利用节点操作获取元素:父节点(parentNode)、子节点(children)、兄(previousElementSibling、nextElementSibling)提倡使用

属性操作

    setattribute:设置DOM的属性值
    getAttribute:得到DOM的属性值
    removeAttribute移除属性值

事件操作

    给元素注册事件,采取事件源.事件类型=事件处理程序
    onclick~~~~~~~~~~鼠标点击触发
    onmouseover~~~~~~~~鼠标经过触发
    onmouseout~~~~~~~~~鼠标离开触发
    onfocus~~~~~~~~~~获取鼠标焦点触发
    onblur~~~~~~~~~~~失去鼠标焦点触发
    onmousemove~~~~~~~~~~鼠标移动触发
    onmouseup~~~~~~~~~~鼠标弹起触发
    onmousedown~~~~~~~~~鼠标按下触发
 

    给元素添加事件,我们称为注册事件或者绑定事件

注册事件的两种方法

    传统方法和方法监听注册事件方式
    传统方式
    利用on开头的事件onclick 特点是注册事件的唯一性,同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的函数

方法监听注册方式

    addEventListener() 推荐使用 特点同一个元素同一个事件可以注册多个监听器按照注册顺序依次执行
    eventTarget.addEventListener(type,listener[,useCapture])方法将指定的监听器注册到
    type:事件类型字符串,比如click、mouseover 注意:这里不需要带on
    listener:事件处理函数,事件发生时,会调用该监听函数
    useCapture:可选参数,是一个布尔值,默认是false.学完DOM事件后进一步学习
    事件监听注册事件 addeventlistenr()
    里面的事件类型是字符串 必须加引号 而且不带on
    同一个元素,同一个事件可以添加多个监听器
   attachevent()方法 i9以前的版本支持 不推荐使用
     <button class="btn2">1234</button>
<script>
var btn = document.querySelector(".btn2")
// 事件监听注册事件 addeventlistenr 里面的事件类型是字符串 必须加引号 而且不带on
btn.addEventListener('click', function () {
alert("88")
})
btn.addEventListener('click', function () {
alert("33")
})
</script>
删除事件的方式
    传统方法和方法监听注册事件方式eventTaget.onclick=null;
    方法监听注册:removeEventListener(type,lister[,useCapture])
     <div>1</div>
<div>2</div>
<div>3</div>
<script>
var divs = document.querySelectorAll("div")
divs[0].onclick = function () {
alert("ok")
divs[0].onclick = null
} divs[1].addEventListener('click', fn)
function fn() {
alert("99")
divs[1].removeEventListener('click', fn)
}
</script>

DOM事件流

    事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程就叫DOM事件流
    捕获阶段~~~~目标阶段~~~~冒泡阶段

注意

    JS代码这里执行捕获或者冒泡其中的一个阶段
    onclick和attachevent只能得到冒泡阶段
    addeventlistener()里面的第三个参数如果是true 表示事件捕获阶段调用处理程序,如果是false表示在事件冒泡阶段调用处理函数
 <div class="father">
<div class="son">son</div>
</div>
<script>
// 捕获阶段
// var son = document.querySelector(".son")
// son.addEventListener('click', function () {
// alert("00")
// }, true)
// var father = document.querySelector(".father")
// father.addEventListener('click', function () {
// alert("father")
// }, true) // 冒泡阶段 如果第三个参数是false就是冒泡阶段
var son = document.querySelector(".son")
son.addEventListener('click', function () {
alert("00")
}, false)
var father = document.querySelector(".father")
father.addEventListener('click', function () {
alert("father")
}, false)
document.addEventListener('click', function () {
alert("987")
})
</script>

JS DOM重点核心笔记的更多相关文章

  1. Node.js高级编程读书笔记Outline

    Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...

  2. HTML DOM(学习笔记二)

    嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...

  3. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  4. node的重点学习笔记(1)————node

    node的重点学习笔记(1)----node 提到node就必须提一下他的npm了,npm是世界上最大的开放源代码的生态系统.通俗来说这就如同亚马逊丛林,要啥物种有啥物种,一个巨大的生态圈,里面有一堆 ...

  5. 前端三件套 HTML+CSS+JS基础知识内容笔记

    HTML基础 目录 HTML基础 HTML5标签 doctype 标签 html标签 head标签 meta标签 title标签 body标签 文本和超链接标签 标题标签 段落标签 换行标签 水平标签 ...

  6. 货架工程项目之js dom实现项目工程进度图

    笔者最近要负责有个项目工程网站的安装进度过程,实现的效果要求大概如下图所示 由于笔者没有参与到数据库的制作,得知他们这个项目设计工序的时候就一个开始日期的和完成日期,连整个项目的安装结束时间都没有简直 ...

  7. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  8. js DOM优化相关探索

    我在这尝试两个方面:-->DOM与js -->DOM与浏览器 (最近在秒味视频上学到不少,哈哈哈) 一.DOM与js 1.js与dom的交互问题 频繁的与dom交互,是一件浪费时间与金钱的 ...

  9. js DOM的几个常用方法

    <div id="div1">这是个测试</div> <p </p> <p </p> //js DOM的几个常用方法 / ...

随机推荐

  1. 数据可视化之powerBI基础(六)Power BI的“问答”,你用过吗?

    https://zhuanlan.zhihu.com/p/64412190 ​本文来自星球嘉宾"海艳"的分享,关于Power BI的问答功能以及各项细节,海艳详细为大家逐一介绍,下 ...

  2. Linux03 /shell命令

    Linux03 /shell命令 目录 Linux03 /shell命令 1. xshell快捷键 2. 修改linux的命令提示符,通过变量PS1控制 3. yum安装/卸载 4. cat命令 5. ...

  3. python 并发专题(十四):asyncio (三)实战

    https://www.cnblogs.com/wongbingming/p/9124142.html 在实战中,将会用到以下知识点: 多线程的基本使用 Queue消息队列的使用 Redis的基本使用 ...

  4. matlab中的静态变量与全局变量

    matlab中的静态变量和全局变量 1.静态变量 在matlab中,和其他语言一样,函数中的变量一把都是局部变量,也就是说,在函数调用完毕后,变量就会被释放.但是有些时候回希望上次改变的变量在下一次调 ...

  5. 原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

    GitHub 15.8k Star 的Java工程师成神之路,不来了解一下吗! GitHub 15.8k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 15.8k Star ...

  6. OSCP Learning Notes - Enumeration(3)

    SMB Enumeration 1. Set the smb configurations. locate smb.conf vim /etc/samba/smb.conf Insert the gl ...

  7. 足球动图gif(二)

  8. Salesforce LWC学习(十九) 针对 lightning-input-field的label值重写

    本篇参考: https://salesforcediaries.com/2020/02/24/how-to-override-lightning-input-field-label-in-lightn ...

  9. [jvm] -- 垃圾收集算法篇

    垃圾收集算法 标记-清除算法 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象. 缺点: 效率问题: 空间问题(标记清除后会产生大量不连续的碎片) 复制算法 它可以将内存分为大小相同 ...

  10. Monster Audio 使用教程(二)效果参数的保存

    点击左上角主菜单按钮,点击[保存]菜单,即可保存当前的所有效果参数. [另存为]菜单,则是把当前参数另存一个名称,然后通过[切换效果]菜单,实现效果的切换.  独立保存单个音轨的效果 点击音轨对应的[ ...