JavaScript基础篇:获取dom元素及增删查改

JavaScript获取dom元素及增删查改

引自JavaScript学习0406课程

一、获取dom元素

获取dom元素的三种方式

1.遍历所有元素:NodeList的forEach接口
2.遍历所有元素:NodeList的for迭代器
3.遍历所有元素:转化为数组遍历

HTML代码示例

<ul class="list">
	<li class="item">item1</li>
	<li class="item">item2</li>
	<li class="item">item3</li>
	<li class="item">item4</li>
	<li class="item">item5</li>
</ul>

获取 ul 和 li

const ul = document.querySelector(".list");
const li = document.querySelectorAll(".item");

1. 遍历所有元素:NodeListforEach接口

//   1.遍历所有元素:NodeList的forEach接口
let items = li.forEach((item) => console.log(item));

2.遍历所有元素:NodeListfor迭代器

//2.遍历所有元素:NodeList的for迭代器
for (let item of li) {
	console.log(item);
}

3.遍历所有元素:将li元素转化为数组遍历

//3.遍历所有元素:转化为数组遍历
console.log([...li]);
[...li].forEach((item) => console.log(item));

这三种方式得到的最终值用console.log()打印到控制台,都能得到如下输出


1

二、dom元素的增删查改

HTML代码示例

<ul class="list">
	<li class="item">item1</li>
	<li class="item">item2</li>
	<li class="item">item3</li>
	<li class="item">item4</li>
	<li class="item">item5</li>
</ul>

获取 ul 和 li 的值

const ul = document.querySelector(".list");
const li = document.querySelectorAll(".item");

//   1.遍历所有元素:NodeList的forEach接口
let items = li.forEach((item) => console.log(item));

1.在任意位置插入值

这里要做三件事

选取参考点,用伪类选
创建一个li
使用before(前) 和 after(后)方法,在参考点插入数据

//   取参考点在任意位置插入值
let referNode = document.querySelector("li:nth-of-type(2)");
console.log(referNode);

let liBefore = document.createElement("li");
liBefore.textContent = "我在item2前面(before)";
referNode.before(liBefore);

let liAfter = document.createElement("li");
liAfter.textContent = "我在item2后面(after)";
referNode.after(liAfter);

1

2.在固定位置插入

这里有4个位置,调用的是父元素来实现功能。
4个位置可以看输出值

let liBeforbegin = document.createElement("li");
liBeforbegin.textContent = "我添加在beforbegin的位置";
ul.insertAdjacentElement("beforebegin", liBeforbegin);

let liBeforend = document.createElement("li");
liBeforend.textContent = "我添加在beforeend的位置";
ul.insertAdjacentElement("beforeend", liBeforend);

let liAfterbegin = document.createElement("li");
liAfterbegin.textContent = "我添加在afterbegin的位置";
ul.insertAdjacentElement("afterbegin", liAfterbegin);

let liAfterend = document.createElement("li");
liAfterend.textContent = "我添加在afterend的位置";
ul.insertAdjacentElement("afterend", liAfterend);

1

!!注意,'beforebegin’和’afterend’仅在元素位于 DOM 树中并且具有父元素时才可用。
innerText 是老版本的用法,这里淘汰不学习,
这里有讲解insertAdjacentElement与insertAdjacentHTML、Text的区别!

简单的讲解下区别,兼容区别请参考如上文章!

  • insertAdjacentHTMLText 这两个方法,第二个参数都必须是字符串;
  • 假如已经有dom节点或者已经createElement出来了一个元素,需要插入怎么办?还有一个叫做 insertAdjacentElement ,使用方法相同,第二参数可以是create出来的节点获取其他dom元素。

3.替换和输出元素

这里需要精确找到需要替换或删除的元素

替换:replaceWith()方法
删除:remove()方法

//   替换
let lastItem = document.querySelector("li:last-of-type");
let a = document.createElement("li");
a.textContent = "RQ桑(替换了最后一个item)";
lastItem.replaceWith(a);

//   删除
ul.querySelector("li:nth-of-type(5)").remove();

1


本文到此结束啦,如果对您有帮助,记得留下小赞窝!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜RQS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值