DOM节点操作

节点之间的关系大致可以分为;
文档document--->根节点<html>--->父级节点---->子级节点---->兄弟节点
节点的属性
属性
描述
parentNode
返回节点的父节点
childNodes
返回子节点的集合,包含换行和注释,childNodes
firstChild
返回第一个子节点,包含换行和注释文本
lastChile
返回节点的最后一个子节点,包含换行和注释文本
nextSibiling
兄弟节点之间的选择,无法选择父节点,返回下一个兄弟节点
previousSilibing
兄弟节点之间的选择,返回上一个节点
Element属性:
属性
描述
firstElementChild
返回节点的第一个子节点
lastElementChild
返回节点的最后一个子节点
nextElementSilibing
返回下一个兄弟节点
previousElementSilibing
返回上一个兄弟节点
注意:
ie的兼容:

firstChild : 第一个子节点 在标准和ie9下会获取到空白文本节点。

firstElementChild : 标准下获取第一个子元素节点,ie6/7/8不支持。

lastChild : 最后一个子节点 在标准和ie9下会获取到空白文本节点。

lastElementChild : 标准下获取最后一个子元素节点,ie6/7/8不支持。

nextSibling:下一个兄弟节点 在标准和ie9下会获取到空白文本节点。

nextElementSibling:标准下获取下一个兄弟节点,ie6/7/8不支持。

previousSibling:上一个兄弟节点 在标准和ie9下会获取到空白文本节点。

previousElementSibling:标准下获取上一个兄弟节点,ie6/7/8不支持。

在兼容ie浏览器时,需要写兼容写法
elment = element.nextElementSibling ||element.nextSibling   
elment=elment.previousElementSibling ||elment.previousSibling  
elment=elment. firstElementChild  || elment.firstChild   
elment=elment.lastElementChild ||elment.lastChild
<ul>
        <li>通过ul的firstChild和firstElementChild兼容写法让我的字体变红色</li>
        <li>通过previousSibling和previousElementSibling 让我的背景要变蓝色</li>
        <!-- 通过操作第三个li 给他其他同级改变样式使用||兼容写法,需要兼容ie9以及以上,和ie8以及以下 -->
        <li>我是程序员3</li>
        <li>通过nextSibling和previousElementSibling 让我的字体变大</li>
        <li>通过ul的lastChild和lastElementChild兼容写法让我字体变粗</li>
    </ul>
    <script>
        var ul = document.querySelector("ul");
        var ulfirst = ul.firstElementChild || ul.firstChild;
        ulfirst.style.color = "red";
        var lis = document.getElementsByTagName("li");
        var li1 = lis[2].previousElementSibling || lis[2].previousSibling;
        li1.style.backgroundColor = "blue";
        var li3 = lis[2].nextElementSibling || lis[2].nextSibling;
        li3.style.fontSize = "30px";
        var ullast = ul.lastElementChild || ul.lastChild;
        ullast.style.fontWeight = "700"
    </script>

节点信息
主要注意:
  1. nodeName:节点名称
  2. nodeValue:节点值
  3. nodeType:节点类型,
节点类型
nodeType值
元素element
1
文本text
3
注释comments
8
文档doucment
9
设置节点属性:
setAttribute()方法添加指定的属性。并为其赋值。
getAttribute()方法返回指定的属性名的属性值。
removeAttribute()方法删除指定属性值
var annimals = document.getElementsByTagName("input");
        var img = document.querySelector("img");
        annimals[0].onclick = function () {
            img.removeAttribute("src");
            img.setAttribute("src", "cat.webp");
        }
        annimals[1].onclick = function () {
            img.removeAttribute("src");
            img.setAttribute("src", "dog.webp");
        }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值