操作DOM

var newDOM=DOM元素.cloneNode(参数);

克隆(复制)当前节点,参数默认为false只复制当前节点元素。参数为true时复制当前元素及其后代和所有属性。

day06

1、函数封装中的默认值问题

  在函数定义后的调用过程中,如果函数需要有参数传入,而调用时传入参数不全,就会产生参数未定义的报错。

  解决方法可以在函数中为传入参数定义默认值。

function(x,y){
  x = x || "abc" ;
  y = y || "123" ;
}

" || ",或运算符会判断是否有x,y参数,如果有则赋值为x,y,如果没有则会赋值为或运算符后面的内容。

day08

1、

  可以给html标签添加自定义属性,并且可以用js获取到

方法:XXX.getAttribute("");XXX.setAttribute("")

注意:自定义属性不可以直接通过标签对象属性调用,标签对象直接调用属性只能是html标签自带属性。

2、

  JS不能获取行内样式之外的样式。

需要 getComputedStyle("xxx").width

顾名思义计算后的样式,因为浏览器解析页面和样式是分开的。

IE8及之前的版本不支持上述方法,需要用

getCurrentStyle("xxx").width

day09

1、懒了,截图

2、计算属性

  可以通过计算属性获取可以直接使用的属性值(纯数字):offsetWidth、offsetHeight、offsetTop、offsetLeft

  每次获取时才计算出位置,不固定,无法修改只能实时获取属性值。

  offsetParent可以直接获取有定位的父元素,即子元素定位的参照元素。

3、文档碎片

  var frag = document.createDocumentFragment();

  创建一个文档缓存,用于暂时存储新创建的元素。

4、鼠标事件

  兼容写法:IE8及以下版本中鼠标事件event存在window下。

function(evt){
  var e = evt || event ;  
}

获取鼠标位置的几个属性:

offsetX,offsetY 相对于触发事件的元素中的位置

clientX,clientY 相对于当前可视区域中的位置

pageX,pageY 相对于整个页面中的位置

注意pageX,Y有兼容问题,IE8及之前版本和火狐老版本不支持

5、

找到元素之后可以通过     元素.aaa=xxx; 在内存中给元素添加值为xxx的aaa属性;

day10

1、阻止默认事件

  通知浏览器不要执行与事件关联的默认动作。

  e.preventDefault(); IE8以下不支持

  兼容IE8及以下

  e.returnValue=false;

  兼容写法: e.preventDefault ? e.preventDefault() : e.returnValue=false ;

2、阻止右键菜单

  点击右键触发的函数  document.oncontextmenu = function (){ }

  添加上述阻止默认事件即可。

3、阻止事件传播

  e.stopPropagation();阻止事件向上传播。

  兼容IE写法:

  e.stopPropagation ? e.stopPropagation() : e.cancleBubble = true ;

day11

1、事件的冒泡和事件的捕获

  事件的捕获是指事件触发后从顶层元素向下传播,直到最底层。

  捕获事件写法:addEventListener("事件",true);(第二个参数决定该事件是冒泡还是捕获,默认值是false,冒泡)

  捕获事件同样可以使用阻止事件传播的方法阻止。

  当多层结构中捕获现象和冒泡现象同时存在时:先执行捕获事件,再执行冒泡事件。

  当同一个元素上捕获现象和冒泡现象同时存在时,会按照代码顺序执行。

  addEventlistener()方法不会互相覆盖,同一个元素可以绑定多个相同的事件不冲突。执行顺序按照代码顺序。

2、事件代理

  简单理解:将本该自身触发的事件方法“代理(委托)”给父元素或更高层级元素,利用事件的冒泡来触发被“代理”的事件,达到预期的效果。

  e.target()方法可以返回触发该事件的元素对象。

  兼容写法:

  var target = e.target || e.srcElement ;

  事件代理可应用于子元素数量很多的情况。例如下拉选择菜单中的单击事件。

3、onmouseenter 和 onmouseleave 事件

onmouseenter 事件类似于 onmouseover 事件。 唯一的区别是 onmouseenter 事件不支持冒泡

课堂小记---JavaScript(3)的更多相关文章

  1. 课堂小记---JavaScript(4)

    day11 1.正则表达式 去掉首尾的空格或者其他字符 replace方法可传入函数可分组. 以下为分组 基础正则表达式语法: /** * 正则表达式是一个对象类型 */ // 匹配字符串中的che ...

  2. 课堂小记---JavaScript(2)

    本阶段难点疑点梳理 1.关于switch中default的使用: default同case功能一样,区别在于并不匹配任何信息,只有当case中无任何匹配的时候才会执行default.需要注意的是,这是 ...

  3. 课堂小记---JavaScript(1)

    day01 1.数据类型  number string boolean undefined object function 加号具有两种功能,数字相加 和 字符串拼接.加号两边只要碰见字符串,则执行字 ...

  4. 杨校老师课堂之JavaScript右下角广告弹框教程

    案例制作思路: 1.先制作界面 添加一个盒子包含一个按钮,使盒子绝对定位在右上角 添加一个大盒子,同理,将盒子居于左下角:其中内部包含一个顶端盒子和底部盒子 顶端盒子因为是属于大盒子内部的存在,所以宽 ...

  5. 杨老师课堂之JavaScript定时器_农夫山泉限时秒杀案例

    预览效果图: 使用到的知识点: 定时器 setInterval(函数,毫秒):在指定的毫秒数后调用函数或执行一段代码 取消定时器 clearInterval:取消由setInterval设置的定时器 ...

  6. javascript小记-javascript运行机制

    任何语言的运行过程中,都会有编译和执行: 对于传统编译型语言来说,编译步骤分为:词法分析.语法分析.语义检查.代码优化和字节生成.但对于解释型语言来说,通过词法分析和语法分析得到语法树后,就可以开始解 ...

  7. 松软科技Web课堂:重要->JavaScript 调试

    错误总会发生,每当您写一些新的计算机代码时. JavaScript 调试 在没有调试器的情况下写 JavaScript 是有难度的. 您的代码中也许包含了语法错误,或者逻辑错误,这些都难以诊断. 通常 ...

  8. 松软科技前端课堂:JavaScript 数值方法

    Number 方法帮助您处理数值. Number 方法和属性 原始值(比如 3.14 或 2016),无法拥有属性和方法(因为它们不是对象). 但是通过 JavaScript,方法和属性也可用于原始值 ...

  9. 松软科技前端课堂:JavaScript 对象

    真实生活中的对象.属性和方法 在真实生活中,汽车是一个对象. 汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法: 对象 属性 方法   car.name = porsche car.model = ...

随机推荐

  1. rs(0)与rs("字段名")的区别

    rs(0)与rs("字段名")的区别    注意:rs是RecordSet对象 前者是按sqlyu语句读出来的记录急的先后顺序命名的,         rs(0)就是你select ...

  2. 使用zabbix监控nginx的活动连接数

    使用zabbix监控nginx的活动连接数 1.方法简述 zabbix可以自定义很多监控,只要是能通过命令获取到相关的值,就可以在zabbix的监控中增加该对象进行监控,在zabbix中,该对象称之为 ...

  3. Python语言的循环语句、迭代器与生成器、函数学习

    while循环语句 无限循环 我们可以通过设置条件表达式永远不为false来实现无限循环,实例如下: for语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串 Python ...

  4. jQuery使用(十二):工具方法之ajax的无忧回调(优雅的代码风格)

    jQuery.ajax()方法的应用 jQuery.ajax()的无忧回调(优雅的代码风格) 一.jQuery.ajax()方法的应用 jQuery.ajax()实质上就是在ajax的基础上进行了封装 ...

  5. [Deep Learning] 神经网络基础

    目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ...

  6. React Router 4.x 开发,这些雷区我们都帮你踩过了

    前言 在前端框架层出不穷的今天,React 以其虚拟 DOM .组件化开发思想等特性迅速占据了主流位置,成为前端开发工程师热衷的 Javascript 库.作为 React 体系中的重要组成部分:Re ...

  7. iMX6Q开发板的EIM接口的配置可以与FPGA通讯-交换数据-最常用的接口配置

    最近基于迅为的i.mx6Q开发板进行了一个FPGA项目的开发,下面给大家介绍一下EIM接口的配置,包括引脚的的选择和寄存器的配置 For the usage of WEIM on i.MX6, you ...

  8. vagrant极简教程:快速搭建centos7

    作为开发人员,只要你的应用最终是放在linux环境执行,那么最好就是将本地开发环境也线上一致.不管是用windows系统,还是mac系统,即使你本地程序跑得好好的,也经常会出现一上线就各种bug的现象 ...

  9. 解决select下拉框禁用(设置disabled属性),后台获取值为空

    如果下拉框设置disabled属性后,提交表单到后台,后台获取的下拉框的值为空,以下有三种解决获取不到下拉框选项值的方法. 有下拉框html如:<select name="select ...

  10. 004 使用scrapy框架爬虫

    0. 建立housePro的scrapy爬虫框架 # 1. 在终端输入,建立housePro项目scrapy startproject housePro# 2. 进入houseProcd houseP ...