学习js第十一天(DOM下)

节点:每个html标签、标签属性、内容、注释等都可以被看做dom节点,dom就是html结构中一个一个节点构成

dom节点分类

1.整个文档是一个文档节点
2.每个HTML元素是元素节点
3.HTML元素内的文本是文本节点
4.每个HTML属性是属性节点
5.注释是注释节点

dom节点树形结构

 dom节点关系:

根节点 : 在HTML文档中,html就是根节点。
父节点 : 一个节点之上的节点就是该节点的父节点,例如ul的父节点就是body, body的父节点就是html。
子节点 :  一个节之下的节点就是该节点的子节点,例如uI就是body的子节点。

兄弟节点:如果多个节点在同一层次,并拥有相同的父节点,那么这几个节点就是兄弟节点。
                例如所有Ii是兄弟节点,因为他们拥有相同的父节点ul

获取元素节点:getElement系列 和 querySelector系列

层次关系获取节点:

 children:获取某一节点下所有子一级元素节点,(伪数组)

层次关系获取元素节点:

 获取元素节点的所有属性节点:attributes

层次图:

 非常规节点获取

        获取html根节点:document.documentElement

        获取body节点:document.body

        获取head节点:document.head

节点属性:

操作dom节点:

        创建元素节点:createElement

        创建文本节点:createTextNode

        创建属性节点:createAttribute

        给元素节点设置属性节点:setAttributeNode

        向元素节点的末尾追加一个节点:appendChild

        向某一节点前插入一个节点:insertBefore

        移除某一节点的子节点:removeChild

        移除当前节点:remove

        将某一节点替换掉:replaceChild

                语法:父节点.replaceChild(新节点,旧节点)

        复制节点:cloneNode

                语法:节点.cloneNode(true|false)

                        true:复制节点包含节点下所有子节点

                        false:复制当前节点


获取元素的非行内样式:getComputedStyle(非IE使用)

                                        currentStyle(IE使用)

       

<style>
    div{
    width:100px;
}
</style>
<body>
    <div>
        
    </div>
</body>
<script>
    let divEle=document.querySelector('div')//获取div
    console.log(divEle.getComputedStyle.width)//获取div样式
</script>

获取元素偏移量:

offsetLeft和offsetTop:

●获取的是元左边的偏移量和,上边的偏移量
●没有定位的情况下
        。获取元素边框外侧到页面内侧的距离
●有定位的情况下
        。获取元素边框外侧到定位父级边框内侧的距离(其实就是我们写的left和top值)

 offsetWidth和offsetHeight:

●获取元素[内容宽高+ padding宽高+ border宽高]的和


获取元素尺寸(宽高)三种方式:

offsetWidth = 内容width + padding + border
clientWidth = 内容width + padding
window.getComputedStyle(divEle).width =  内容width


坑点: 

document.getElementByClassName会更新旧的查询结果
document.querySelector则不会
比如: document.querySelectorAll('.li1') 
                      => 获取所有类名为li1的元素,长度为3 
                      => 动态添加一个类名li1元素,长度还是为3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值