JavaScript(七)获取节点,操作节点,BOM

1.获取节点

1.1获取父节点

  • 子元素.parentNode 获取直接父元素
  • 子元素.offsetParent 获取最近定位父元素 如果没有最近定位父元素则是获取body

1.2获取子节点

  • 父元素.children 获取父元素下的元素节点
  • 父元素.childNodes 获取所有的子节点
    • 判断节点类型 节点.nodeType
      • 元素节点 1
      • 属性节点 2
      • 文本节点 3
      • 注释节点 8
    • 获取节点的名称 节点.nodeName
      • 元素节点 元素名称大写
      • 文本节点 #text
      • 注释节点 #comment
    • 操作节点的内容(文本节点 注释节点) 节点.nodeValue
      • 获取 节点.nodeValue 对元素节点没有用 所以获取的值是null
      • 设置 节点.nodeValue = 值

1.3获取首尾和兄弟节点

  • 兼容问题
1.方法兼容   
	   判断该方法是否存在   判断window.getComputedstyle
		 if(window.getComputedStyle){
    //标准浏览器
       
     }else{
   //IE低版本浏览器
       
     }
2.属性兼容      ||   一真为真
		 || 短路运算  
					如果第一个条件为false 第二个条件执行
          如果第一个条件为true   第二个条件不执行
           var a = 1;
          var b = 10;
          var c = --a || --b;// 0 || 9      a=0  b=9 c=9
          console.log(a,b,c); // 0 9 9

          var a = 2;
          var b = 10;
          var c = --a || --b;    //  c= 1 || --b      a = 1  c=1  b = 10
          console.log(a,b,c);// 1 10 1

	 标准浏览器   IE浏览器
   标准浏览器的语法  || IE浏览器的语法
1.3.1获取首尾节点
  • 标准浏览器 父元素.firstElementChild
  • IE浏览器 父元素.firstChild
var lastLi = list.lastElementChild || list.lastChild;
lastLi.style.backgroundColor = "pink"
1.3.2获取尾结点
  • 标准浏览器 父元素.lastElementChild
  • IE浏览器 父元素.lastChild
var lastLi = list.lastElementChild || list.lastChild;
lastLi.style.backgroundColor = "pink"
1.3.3获取上一个兄弟节点
  • 标准浏览器 参考节点.previousElementSibling
  • IE浏览器 参考节点.previousSibling
var currentLi = document.getElementById("list");
var prevLi = currentLi.previousElementSibling || currentLi.previousSibling
prevLi.style.backgroundColor = "teal";
1.3.4获取下一个兄弟节点
  • 标准浏览器 参考节点.nextElementSibling
  • IE浏览器 参考节点.nextSibling
var currentLi = document.getElementById("list");
var nextLi = currentLi.nextElementSibling || currentLi.nextSibling;
nextLi.style.backgroundColor = "green"

2.操作节点

2.1追加节点

  • 创建节点
    • document.createElement(“节点名称”) 创建元素节点
    • doucument.createTextNode(“文本内容”) 创建文件节点
  • 追加节点
    • 父元素.appendChild(子节点)

2.2删除节点

  • 参考节点.remove()

    • 删除当前节点 存在兼容问题
     var list = document.getElementsByTagName("ul")[0];
            // 1.参考节点.remove()  删除本身   存在兼容问题 不支持IE浏览器
            console.log(list)
    
  • 父元素.removeChild(子节点)

    • 删除父元素下的子节点
     // 2.父节点.removeChild(子节点)
            var oli = document.getElementById("list");
            // list.removeChild(oli)
    

2.3插入节点

  • 父元素.insertBefore(插入的新节点,参考位置)
 <script>
        var oUl = document.getElementsByTagName("ul")[0];
        var oLi = document.getElementsByTagName("li");
        // 1.插入节点 父元素.insertBefore(要插入的节点,参考位置)
        var createLi = document.createElement("li");
        createLi.innerHTML 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值