DOM进阶

一.HTML属性操作
(1)获取HTML属性值
(2)设置HTML属性值
1.获取HTML属性值
一般通过属性名,来找到属性对应的值
语法:obj.attr
obj是元素名,它是一个DOM对象,所谓DOM对象,指的是getElementById()、getElementsByTagName()等方法获取到的元素节点,
attr是是属性名,通过点运算符(.)获取它的属性值
例:获取静态HTML的属性值

在这里插入图片描述
例:获取文本框的值
在这里插入图片描述
例:获取单选框的值
在这里插入图片描述
getElementsByName()只限用于表单元素,它获取的是一个元素集合,也就是类数组
例:获取复选框的值

在这里插入图片描述
例:获取下拉菜单的值
在这里插入图片描述
2.设置HTML属性值
也是通过属性名来设置的
语法:obj.attr=“值”;
在这里插入图片描述二.
HTML属性操作(对象方法)
语法:obj.getAttribute(“attr”)
obj.attr
这两种方式都可以用来获取静态HTML的属性值及动态DOM的属性值
自定义属性(指的是这个属性是用户自己定义的而不是元素自带的)时要用obj.getAttribute(“attr”)
例:获取固有属性值
在这里插入图片描述

  1. setAttribute()设置元素某个属性的值
    语法:obj.setAttribute(“attr”,“值”)与obj.attr="值"是等价的
    obj是元素名,attr是属性名,setAttribute()有两个参数,一个是属性名,另一个是你要设置的属性值
  2. removeAttribute()删除元素的某个属性
    语法:obj.removeAttribute(“attr”)
    例:在这里插入图片描述
    3.hasAttribute()判断元素是否含有某个属性
    语法:obj.hasAttribute(“attr”)
    hasAttribute()方法返回一个布尔值,如果包含该属性,返回true,不包含返回false
    三.CSS操作属性
    获取CSS属性值
    设置CSS属性值
    1.获取CSS属性值
    语法:getComputedStyle(obj).attr
    obj表示DOM对象,attr表示CSS属性名,这里的属性名使用的是骆驼峰形例如font-size写成fontSize,border-bottom-width写成borderBottomWidth
    例:
    在这里插入图片描述2.设置CSS属性值
    有两种方法 style对象和cssText()方法
    (1)style对象
    其实就是在元素的style属性来添加样式,设置的是行内样式
    语法:obj.style.attr=“值”
    说明:obj表示DOM对象,attr表示CSS属性名,采用的是骆驼峰型 变量中是不可以出现中划线的,中划线在javascript中相当于减号的意思
    例:在这里插入图片描述
    复合属性:

在这里插入图片描述
我们获取的文本框其实是字符串,变量atttr和val都是字符串,所以不能使用obj.style.attr方式设置CSS属性,要使用obj.style[“attr”]这种方式
(2)cssText属性
也是在元素的style属性中添加的
语法:obj.style.cssText=“值”
obj是一个DOM对象,cssText的值是一个字符串
例如:oDiv.style.cssText="width:100px;height:80px;border:1px solid black;
注意:字符串中的属性名不再使用骆驼峰型写法而是使用平常的CSS写法
例:在这里插入图片描述问题:获取CSS属性值不可以用obj.style.attr或obj.cssText.attr吗?为什么一定要用getComputedStyle?
getComputedStyle从名字上就可以看出来,计算后的样式,无论是内部样式还是行内样式最终获取的是根据CSS优先级计算后的结果,CSS优先级是非常重要的
四。DOM遍历
DOM遍历就是主要以当前所选元素为基点,查找元素的意思
查找父元素
查找子元素
查找兄弟元素
1.查找父元素
语法:obj.parentNode
在这里插入图片描述
凡是单数的就不用类数组
2.查找子元素
有两种方式来获得父元素中所有子元素或某个子元素

  • childrenNodes、firstChild、lastChild
  • children、firstElementChild、lastElementChild
    childrenNodes获取的是所有子节点,包括元素节点和文本节点
    children获取的是所有元素节点,不包括文本节点
    例:
    在这里插入图片描述
    children.length获取的是元素节点的长度,结果为3
    childNode.length获取的是元素节点和文本节点的长度,文本节点是每一个li元素之间的换行,每一次换行都是一个空白节点,都当成文本节点来处理,所以就是7
    3.查找兄弟元素
    有两组方式
  • previousSibling、nextSibling分别为查找前一个兄弟节点和查找后一个兄弟节点
  • previousElementSibling、nextElementSibling分别为查找前一个兄弟元素节点和查找后一个兄弟元素节点
    previousSibling、nextSibling查找出来的可能是文本节点(一般是空白节点)
    如果只想查元素节点建议用 previousElementSibling、nextElementSibling
    在这里插入图片描述
    五.
    innerHTML和innerText
    可以使用innerHTML属性很方便的获取和设置一个元素的内部元素,
    使用innerText属性获取和设置一个元素的内部文本
    例:获取innerHTML和innerText
    在这里插入图片描述
    innerHTML获取的是元素内部的所有内容,innerText获取的仅仅是文本内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值