JS基础-webApi-DOM

DOM的本质

dom的数据结构是树(dom树)

DOM节点操作

1.获取节点方法

let num1 = document.getElementById("num1")    //根据id来获取
let pList = document.getElementsByTagName("p")   //根据节点名来获取 集合
let nameList = document.getElementsByName("val")  //根据 atrr的name来进行获取 集合
let classList = document.getElementsByClassName("red")  //根据class名来进行获取 集合
let queryList = document.querySelectorAll(".box p")  //根据css选择器来进行获取 集合
let queryItem = document.querySelector(".box p")  //根据css选择器来进行获取 返回匹配的第一个元素

2.DOM节点的property
property不是一个具体的属性也不是api的一部分,它是一种形式。以对象属性的形式来操纵节点样式。

queryItem.style.color = "red"   //获取到的这个p标签 的style变为"style='color:red'"
queryItem.className = "blue"   //获取到的这个p标签的class变为 "class='blue'"

3.DOM节点的atrribute
使用setAtrribute和getAtribute这样的api来直接修改DOM结构。

let p = document.querySelector("p")
p.setAttribute("school-name","上海大学");
console.log(p.getAttribute("school-name"))  //上海大学

在这里插入图片描述
4.DOM结构操作

//新增节点
let div1 = document.getElementById("num1"); //上面的div
let newP = document.createElement("p");
newP.innerHTML = "刚刚新建的一个p";
div1.appendChild(newP);  //会加在div1的最后一个节点后面

//移动已有节点
let div2 = document.getElementById("num2"); //下面的div
let p3 = document.querySelector(".box p:nth-child(3)");
div2.appendChild(p3);
//获取父元素
console.log(p3.parentNode);
//获取子元素
const div2ChildNodes = div2.childNodes;
console.log(div2ChildNodes); //直接获取的有所有的节点类型 包括text和document等
//所以需要进行过滤
const div2ChildNodesP = Array.prototype.slice.call(div2ChildNodes).filter(el => {
if(el.nodeType===1){
     return true;
  }
return false;
})
console.log(div2ChildNodesP);    //现在是只有元素
// 删除
div2.removeChild(div2ChildNodesP[1])
div2.removeChild(document.querySelector(".box2 p"))

5.DOM性能

  • dom性能比较“昂贵”,应该避免频繁的dom操作;
  • 对dom查询进行缓存;
  • 将频繁操作改为一次性操作;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值