DOM的使用

文档对象:

document:表示一整个html文档

节点:

文本节点:

1、包括换行 2、标签中的文字部分 3、单标签没有文本节点,也没有子元素

元素节点:(元素对象)

1、标签:每个标签称为一个元素

2、一个标签一个对象

属性节点:

1、标签的属性

Elements:元素对象集合

Element:单个元素对象

HTMLcollection:html元素集合的构造器

NodeList:节点列表构造器,由foreach

在JS中获取html节点:

getElementsByTagName(‘标签名’):通过标签名获取htmlcollection集合

getElemtsByName('name'):通过name属性获取,Nodelist集合

document.getElementsById('app'):通过id获取,返回元素对象

document.body 获取body

document.documentElement获取html元素

document.getElementsByclassName(''类名):通过类名获取元素,获取多个,返回类数组

query'Select(‘选择器’):通过选择器获取遇到的第一个满足条件的元素对象

queryselectorAll(‘选择器’):获取所有的选择器

元素对象的属性:

获取第一个元素节点:

firstchild

dirstElementchild

获取最后一个元素节点:

lastchild

lastElementchild

获取上一个兄弟元素节点:

previousSibling

previousElementsibling

获取下一个兄弟元素节点:

nextSibling

nextElementSibling

获取子元素节点:

children

childNodes

获取父元素节点:

parentElement 用法出来html元素,其他都一样

parentNode

元素属性的操作:

元素对象的属性:

1、元素上的属性名不一定等于标签上的键值对        元素对象上类名:className 标签上:class

2、对象名.属性值=值        修改或者添加属性

3、修改固有属性value时,标签上的键值对不受影响

4、能取到对象上自定义的键值对

5、表单元素上的值,以对象属性的value为主

标签上的键值对:

1、对象名.setAttribute('key','value') 设置

2、对象名.getAttribute('key')

3、可以取到标签上自定义的键值对

4、不能取到对象上自定义的键值对

5、添加固有属性,会影响元素属性的值

标签固有属性:

自定义属性

        如果设置的自定义属性能让用户看,则用setAttribute设置在标签上,如果不能就用对象名.属性名设置在对象上

文本节点操作:

textcontent:获取元素及后代元素的文本内容,包括空白符

innerText:只保留一个空白符        一般只会获取只有文本的标签的文本

inner HTML:获取元素中所有的html文本内容

CSS操作:

行内:

获取:

1、元素对象.style.属性名   只能获取行内设置的样式

2、获取当前使用的样式:getcomPutedStyle(元素对象)

设置:

1、元素对象.style.属性名='值',设置的是行内样式

        值可以是:字符串或者纯数字

2、使用动态class设置动态样式(常用)

先把动态的样式用知道他的类名写在样式表[style标签或者css文件]中

动态的修改元素的类名为自定义的类名

dom元素的添加和删除:

1、innerHTML拼接

2、创建元素对象再添加

父元素.append(节点||' ')添加子节点

父元素.appendchild(节点) 添加子节点

父元素.insertAdjacentElement(‘位置’新节点)        在目标节点前添加新的子元素

鼠标元素.insertAdjacentElement('位置'新节点)把新节点

3、删除

当前元素.remove() 删除当前元素

父元素.removechild(子节点)删除父元素中的某个子节点

4、复制节点

节点对象.cloneNode(true)

true:深拷贝,包括文本节点和子元素

false:浅拷贝,只拷贝当前标签,不包括文本节点和子元素

插入目标元素的指定位置:

beforebegin

afterbegin

beforeand

afterend

一个对象一个标签

事件:

事件的绑定方法:

1、行内绑定:this:永远指向window、arguments,执行的函数必须定义在全局

2、在js中绑定

方法1:元素对象.οnclick=函数对象.[函数名.匿名函数,lambda]一个事件只能绑定一个函数

        this:谁触发指向谁

方法2:添加事件监听.一个对象,同一个事件可以绑定多个函数

元素对象.addEventListener('事件名',函数对象[函数名,匿名函数])

事件冒泡:

子元素触发的事件会向父元素传递

点击事件从里到位执行

事件委托:

原理是冒泡,存在于父子关系

当父元素和子元素绑定同样的函数时,只需要在父元素绑定

当多个子元素都绑定同一个事件同一个函数时,可以把事件委托给父元素,在父元素上绑定

事件的捕获:
从里到位执行函数

通过addEventListener的第三个参数开启,true:捕获  false:冒泡

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值