网站首页 > 技术文章 正文
前几天学习了Javascript的基础知识,算是已经入了一个小门,今天学习了JS获取DOM和操作DOM的基础知识,下面我来分享一下我的学习心得。
一、JavaScript获取DOM元素常用的5种方法。
现有如下DOM元素结构:
<ul id="box">
<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>
<li class="item">item6</li>
</ul>1.返回匹配的元素集合中的第一个。
const li = document.querySelector('.item');2.返回匹配的元素集合所有成员。
const list = document.querySelectorAll('.item');3.根据标签(tag)获取元素。
const ul = document.getElementsByTagName('ul');4.根据id选择器获取元素。
const id = document.getElementById('box');5.根据class选择器获取元素
const classNames = document.getElementsByClassName('item');以上就是JS获取DOM元素的5种常用方法,
二、classList对象与dataset对象的应该场景
- classList应用场景:
<style>
.red {
color: red;
}
.blue {
color: blue;
}
.bg {
background-color: #ff00ff;
}
</style>
<p class="red" id="hello">Hello World</p>如果我们想获取元素的class属性值,可以使用className来获取:
console.log(p.className); // red获取元素的id属性值,可以使用id来获取:
console.log(p.id); // hello还可以通过className给元素添加属性:
p.className = 'blue';p.className = 'blue bg';如果一次添加一个属性使用className还行,但是如果要多次添加属性,那么每次都得把之前的属性再重写一遍这样的话就有点繁琐了,因此可以使用classList来专门操作类:
p.classList.add('red', 'bg');移除一个类:
p.classList.remove('bg');- dataset应用场景:访问非自定义标签属性
案例:现有如下一个DIV元素:
<div class="user" data-email="admin@php.cn" data-my-gender="male">个人简介</div>现在如果我想给user属性添加一个id值,并打印出来可以这样操作:
const user = document.querySelector('.user');
user.id = '1';
console.log(user.id); // 1但是,如果dom结构上有用户自定义的属性,比如:data-email="admin@php.cn",可以使用dataset对象访问自定义的标签属性。
console.log(user.dataset.email); // admin@php.cn如果用户自定义属性是data-my-gender这种格式的,那么在获取的时候应该采用驼峰式的写法: myGender:
console.log(user.dataset.myGender); // male但是,在自定义属性的时候不能写成data-myGender = "male",这样会报undefined:
<!-- 错误写法 -->
<div class="user" data-email="admin@php.cn" data-myGender="male">个人简介</div>以上就是我今天学习的JS操作DOM的相关知识,其中,如何获取元素的5种方法我还是需要牢记掌握,这个对于以后的学习应该是非常重要的,还有就是JS访问用户的自定义属性,这个需要用dataset对象,这个是需要注意的。
好啦,今天的心得分享就到这里啦,感谢各位的支持!
猜你喜欢
- 2024-10-04 Vue选项:computed计算属性(vue3.0 计算属性)
- 2024-10-04 Vue 中的计算属性(vue中的计算属性)
- 2024-10-04 Js基础7:表单元素属性(js中表单)
- 2024-10-04 Jquery属性——学习笔记(一)(如何使用jquery设置一个属性值)
- 2024-10-04 前端入门——在网页中使用JavaScript
- 2024-10-04 前端-JavaScript中的class(javascript class)
- 2024-10-04 如何获取JavaScript中某个函数可接受的参数数量
- 2024-10-04 关于js设置对象attr属性的问题(js对象属性值)
- 2024-10-04 react三大核心属性(react的核心)
- 2024-10-04 JS 对象基本用法(js对象的操作方法)
- 11-23微信如何群发消息给所有人(微信如何群发消息给所有人全选)
- 11-23腾达路由器手机登录(腾达路由器官网页登录)
- 11-23防火墙关闭对电脑有影响吗(防火墙关闭有什么影响)
- 11-23联想笔记本电脑官网查询真伪入口
- 11-23申请恢复qq群(申请恢复qq群聊怎么恢复)
- 11-23苹果查询激活日期和保修期限
- 11-23u盘提示格式化但无法格式化(u盘提示格式化却无法格式化)
- 11-22pe启动盘怎么装系统(pe启动盘如何重装系统win10)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
