web-api-节点操作

节点操作

什么是节点?

dom树中的所有内容都是节点  内容可以分类成以下:
	内容:
			元素节点
			属性节点:元素中的属性 如href  class id
			文本节点:字面文本
			其他
			

节点关系有三类:父子兄

-找父节点:子元素.parentNode  找最近一级的亲爸爸 找不到返回null 
-找子节点: childNodes:获得所有子节点,包括文本节点(空格换行),注释节点等
				children(重点):仅获得所有元素节点 得到的是一个伪数组
				父元素.children
-查找兄弟节点:
					上一个兄弟:perviousElementSibling属性
					下一个兄弟:nextElementSibling属性

增加节点

步骤:先创建一个新的节点–然后把新的节点放到指定的元素的内部
创建新的元素:document.createElement(‘标签名’);--------------------带引号的字符串
     document.createElement(‘p’);
     let p =document.createElement(‘p’);

一般将新创建的节点插入到父元素中
   插入到父元素的最后一个子元素:
    父元素.appendChild(接收元素的变量名)---------不加引号
    不加引号解释:
    let li =document.querySelector('li');
    变量li接收到的元素标签本身是字符串的 所以不用加
   
   插入到父元素中某个子元素的前面:
    父元素.insertBefore(要插入的元素,在哪个元素前面 );

特殊情况下 我们新增一个节点 按照如下操作
先:复制一个原有的节点

      <!-- <li>
                    <img src="./images/course01.png" alt="">
                    <h4>
                        Think PHP 5.0 博客系统实战项目演练
                    </h4>
                    <div class="info">
                        <span>高级</span><span> 1125</span>人在学习
                    </div>
                </li> -->
	再:把复制的节点放入指定的元素内部
// 获取父元素ul
        let ul = document.querySelector('ul');
        // 由数据的长度 通过遍历创建元素li 的个数
        for (let i = 0; i < data.length; i++) {
            let li = document.createElement('li');

            //先将li渲染好再追加到父元素里面
            li.innerHTML = `      
                    <img src=${data[i].src} alt="">
                    <h4>
                        ${data[i].title}
                    </h4>
                    <div class="info">
                        <span>高级</span> • <span> ${data[i].num}</span>人在学习
                    </div>`;
            //将新创建的每个li都追加到父元素ul中
            ul.appendChild(li);
            // li.children[i].
        }

克隆节点

克隆一个已有的元素节点
元素.cloneNode(布尔值);

在这里插入图片描述
元素.cloneNode();
参数为空–默认为false:只克隆该元素,但不克隆元素里面的子元素
参数为true:克隆该元素并且该元素的后代都将被克隆

删除节点
在这里插入图片描述
在这里插入图片描述

时间对象

在这里插入图片描述

在这里插入图片描述

时间对象方法

在这里插入图片描述
时间对象方法的使用之前必须先实例化对象:
let date=new Date();
date.方法

**注意点:**星期0 星期1 星期2 如何变为 星期天 星期一
通过创建数组 引用数组下标
let arry= [ ’ 星期天’,’ 星期一’,’ 星期二’,’ 星期三’,’ 星期四’ ]
0 1 2 3 4
date.getDay();//返回0-6
let weekend = date.getDay();
${ arry [ weekend ] }

实例化时间 要写在定时器的里面: 因为定时器每隔一段时间就调用函数,函数每被调用一次, 函数内部实例化时间就会重新获取最新时间

时间戳

在这里插入图片描述
应用场景:倒计时

三种方法获取时间戳
在这里插入图片描述

在这里插入图片描述
推荐使用第二种: +new Date() ------当前的时间戳
返回指定时间的时间戳:+new Date(’2022-3-22 空格 12:00:00 ‘)

时间戳案例
在这里插入图片描述
时间对象总结
在这里插入图片描述

-----------------------------------------------------------------------------------------------

重绘和回流

参考

在这里插入图片描述
渲染:先回流-----------再重绘 --------回流一定导致重绘

回流:画盒子
在这里插入图片描述
在这里插入图片描述
影响页面布局的----回流
影响页面样式变化的—重绘

总结
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值