商品全选 - 草稿 - 草稿

var  j=document. getElementById()按钮

var  j=document.getElementById ()复选框

按钮绑定事件 循环复选框设置选中状态

判断复选框没有被选中,选中的按钮不被选中



获取元素的属性

document. getAttribute(属性值)

element.属性获取自身的属性

设置元素的属性值

element.属性=值

element. setAttribute(‘index',值)

移除属性

element. removeAtrribute(")

自定义属性的存在保存在页面中,不用每次都从数据库中获取

H5自定义属性规则用data-名称

或者使用JS直接设置

H5新增dataset(集合里面放入所有以data开头的属性)    element.dataset.data后面的名称

element.dataset[index]

如果属性名够长,采取驼峰命名法listName

节点操作

元素节点 nodeType 为1

属性节点 nodeType为2

文本节点nodeType为3  (文字,空格,换行)

parentNode (离元素最近的父节点,亲爸爸)

chilldNodes包含所有的子节点,元素节点,文本节点

children获取元素的子节点,ul.children获取非文本节点的数据

firstChild获取第一个子节点(也带文本节点)

firstElementChild返回第一个元素的节点 存在兼容性问题

lastChild

lastElementChild返回最后一个元素的节点  存在兼容性问题

使用children[0]获取一个元素无兼容性问题

children[ul.children.length]

div.nextSibling 获取div下一个兄弟节点,包含元素节点或文本节点

div.previousSibling 获取div上一个兄弟节点,包含元素节点或文本节点

div.nextElementSibling 获取div下一个兄弟元素节点

div.previousElementSibling 获取div上一个兄弟节点,包含元素节点或文本节点

解决兼容性函数

解决兄弟间兼容问题

创建元素节点

var li=document.createElement(‘li')

添加节点

ul.appendChild(li)  往后追加元素

ul.insertBefore(li,ul.children[0])

ul.removeChild(ul.children[0])

btn.onclick=function(){

删除是当前链接的li 它父亲

循环所有的a标签

ul.removeChild(this.parentNode)

}

复制节点

ul.children[0].cloneNode()

cloneNode括号里面为空或者false则为浅拷贝,true 为深拷贝也拷贝数据

thead  tr  rh

tbody

数据准备

var datas=[{

name

subject

score

}]

var k in 元素  k 属性名 元素属性名


三种动态创建

document.write  页面文档流加载完毕,再调用这句话会导致页面重绘innerHTML 循环添加 采取数组形式,不要采取拼接字符串格式

createElement 创建多个元素,效率会低一点,但是结构清晰

事件高级

注册事件(传统方式和方法监听注册方式)

btns[1].onclick=funcction(){}

传统方式利用on开头,注册事件的唯一性,后注册的事件会覆盖上一个事件方法监听注册方式(IE9之前不兼容,使用addEventListener(事件类型,事件处理函数,可选参数是一个布尔值默认false))

事件监听注册事件

btns[1].addEventListener()

同一个事件可以添加多个侦听器(事件处理函数)

attachEvent(事件类型on开头,回调函数IE9之前的版本支持,非标准小心使用

兼容性处理函数

删除事件

传统方式event.onclick=null

监听方式

event.addEventListener(事件类型,单独函数fn)

event.attachEvent(事件类型,单独函数fn)

fn(){

alert(‘1')

event.removeEventListener(事件名,fn)

event.deatchEvent(事件名,fn)

}

dom事件流

事件流描述的是从页面中间接收事件的顺序

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程叫Dom事件流

捕获阶段 如果addEventLister第三个参数是true,那么则出于捕获阶段 

document html body father son

son.addEventListener(click,function(){

},true)

father.addEventListener(click,function(){

},true)

冒泡阶段 如果addEventLister第三个参数是false,那么则出于冒泡阶段 son father body html document

son.addEventListener(click,function(){

},false)

father.addEventListener(click,function(){

},false)

onclick 和attachEvent只能得到冒泡阶段

有些事件是没有冒泡的 比如onblur onfocus, onmouseenter,omouseleave

事件对象

div.onclick=function(event){}

event就是一个事件对象,写到我们侦听函数中,当形参看,

事件对象是有了事件才会存在,他是系统给我们自动创建的,不需要我们传递参数

事件对象 是我们事件一系列的相关数据集合,跟事件相关的,比如鼠标点击里面就包含了鼠标的相关信息,鼠标坐标,如果是键盘时间就包含键盘事件信息,比如判断用户按了哪个键


事件对象也有兼容性的问题 ie678 通过window.event 兼容性的手法 e=e||window.event

div.addEventListener(click,function(event){

console.log(e)

})

e.target返回的是触发事件对象(元素) 也指点击的对象,this返回的是绑定事件对象(元素)

div.onclick=function(e){

e=e||window.event

var target=e.target||e.srcElement

}

了解,跟this有个非常相似的属性,currentTarget IE678不认识

事件对象

阻止默认行为,让链接不跳转或者让按钮不提交

e.preventDefault()

低版本e.returnValue

也可以利用return false 也能阻止默认行为没有兼容性问题 return 后面代码不执行了 而且只限于传统的注册方式

阻止冒泡事件

stopPropagatiom()  stop停止  停止冒泡事件

e.cancelBubble=true  //cancel 取消bubble泡泡

常用的鼠标事件

contextmenu  可以禁用鼠标右键

addEventListener(comtextmenu,function(e){

e.preventDefault()

})

selectstart一样禁用

clientX  可视化区域x轴

clientY  可视化区域y轴

pageX  页面文档的x轴

pageY 页面文档的Y轴  页面无论怎样都是距离页面的距离

mousemove 鼠标移动事件

页面中移动使用document

图片要移动,而不占位置使用绝对定位即可

img.style.left=pageX

img.style.top=pageY

keyUp按起触发

keyDown按下触发

onkeypress  某个键盘按键被按下时触发 但它不识别功能键比如ctrl shite 键

三个事件的执行顺序,先执行keyDown  keypress  keyup

键盘事件对象

ASCLL表

e.keyCode 获取相应的码值

keyup 和keydown 不区分大小写

keypress事件区分字母大小写a 97 A65

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容