当前位置:网站首页>DOM — 元素的增删改查
DOM — 元素的增删改查
2022-08-02 14:17:00 【z_小张同学】
1.创建元素:document.createElement()用 此方法创建的元素只保存在内存中,而不会渲染到页面上。
// 创建一个div标签
var box2 = document.createElement("div")
// createElement()括号内填入的是要创建的标签名
2.给标签添加类名:
有两种方法:(1)直接使用 x.className给标签添加
// 创建一个div标签
// createElement()括号内填入的是要创建的标签名
var box2 = document.createElement("div")
// 添加类名
box2.className = "box2"
(2)使用 x.classList.add()方法,此方法的优点是可以多次调用,给元素添加多个类名,并且当多次调用添加的类名相同时,只会添加相同的一个类名
// 创建一个div标签
// createElement()括号内填入的是要创建的标签名
var box2 = document.createElement("div")
// 添加类名,给div设置了两个类名
box2.classList.add("box2")
box2.classList.add("box3")
并且要删除类名时,也可以调用 x.classList.remove()来删除某个类名
// 创建一个div标签
// createElement()括号内填入的是要创建的标签名
var box2 = document.createElement("div")
// 添加类名,给div设置了两个类名
box2.classList.add("box2")
box2.classList.add("box3")
// 删除一个类名
box2.classList.remove("box3")
3. 将创建的元素添加到文档树中,也就是渲染到页面上。
使用 x.appendChild(y) 把y节点对象添加到x节点中
// 获取
var box = document.querySelector("#box")
// 创建一个div标签
// createElement()括号内填入的是要创建的标签名
var box2 = document.createElement("div")
// 添加类名
// box2.className = "box2"
box2.classList.add("box2")
box2.classList.add("box3")
// 删除一个类名
box2.classList.remove("box3")
// 添加到文档树
box.appendChild(box2)
4.删除元素
(1)父元素删除子元素
var box = document.querySelector("#box")
// 1.父元素删除子元素
box.parentElement.removeChild(box)
(2)元素自己移除
var box = document.querySelector("#box")
// 2.自己移除
box.remove()
(3)元素直接全部清空自己
var box = document.querySelector("#box")
// 3.清空自己
box.parentElement.innerHTML = ""
5.克隆: 使用 x.cloneNode() 方法
var box = document.querySelector("#box")
// var box2 = box.cloneNode(true) //参数为true,会连同box的后代元素和所有事件 一起克隆
var box2 = box.cloneNode() //不会克隆事件等
box.appendChild(box2)
6.插入节点: x.insertBefore()
<body>
<div class="box">
<div class="box2">aaa</div>
<div class="box2">bbb</div>
<div class="box2">ccc</div>
<div class="box2">ddd</div>
</div>
<script>
var box = document.querySelector(".box")
var a1 = document.createElement("h1")
a1.innerHTML = 666
// 在box的下标为2的子元素之前添加一个元素
box.insertBefore(a1,box.children[2])
</script>
</body>
边栏推荐
猜你喜欢
项目管理模块-项目权限功能开发
网络运维系列:二级域名启用与配置
解决跨域问题的方法 --- JSONP
华为单臂路由配置,实现不同vlan之间的通信
记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
【交换机端口安全技术 】
Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关...
Spark的概念、特点、应用场景
在命令行或者pycharm安装库时出现:ModuleNotFoundError: No module named ‘pip‘ 解决方法
smart_rtmpd 的 NAT 映射方式使用说明
随机推荐
LAMP 环境搭建 yum源安装方式 (Apache 2.4.6 +mysql 8.0.28+php 8.1.3)
smart_rtmpd 轻松突破 C100K 测试
synchronized详解
VMware 安装openwrt
RouteOS 导入至PVE
一个简单的 erlang 的 udp 服务器和客户端
华为单臂路由配置,实现不同vlan之间的通信
WEB自动化之多窗口操作、切换frame、弹窗处理
[Inter-process communication]: pipe communication/named/unnamed
搭建Spark开发环境
Vmware workstation16 安装 ESXi 6.7 详细步骤
【软件测试】性能测试理论
大厂年薪50w+招聘具有测试平台开发能力的测试工程师
Dcoker的安装及使用命令
WebRTC 中有关 Media Stream & Track & Channel 之间的关系
一线大厂研发流程(转载自鱼皮)
OpenPose run command ([email protected])
HCIE学习记录——数据封装与常用协议(TCP/UDP)
Template Series - Dichotomous
VLAN原理