原生js实现针对Dom节点的CRUD操作示例


Posted in Javascript onAugust 26, 2019

本文实例讲述了原生js实现针对Dom节点的CRUD操作。分享给大家供大家参考,具体如下:

知识点,依然会遗忘。我在思考到底是什么原因。想到研究生考试准备的那段岁月,想到知识体系的建立,知识体系分为正向知识体系和逆向知识体系;正向知识体系可以理解为教科书目录,逆向知识体系可以理解考试真题。

按照知识体系建设这个思路,追求长久的深刻的记忆。决定建立正向知识体系。本文系正向知识体系的第一篇。

原生js操作dom节点:所谓的CRUD,代表create,read,update,del;也就是创建,读取,更新和删除。dom提供了api用于创建节点常用有

var div=document.createElement("div");
var p=document.createElement("p");
div.innerHTML="这是插入内容";
var text=document.createTextNode("这是文本内容");
var img=new Image();

创建元素、文本内容和图片。创建要和插入一起使用,所以

dom1.appendChild(div);
dom1.insertBefore(div,dom1.querySelector("p")); 
function inertAfter(newElement,targetElement){
   var parent=targetElement.parentNode;
   if (parent.lastChild==targetElement) {
     parent.appendChild(newElement);
   }else{
     parent.inertBefore(newElement,targetElement.nestSibling);
   }
}
document.getElementById('id名称').preappend(div);//直接插入到父元素第一个位置
document.getElementById('id名称').append(div);//直接插入到父元素最后位置
//还有另一个api
dom1.insertAdjacentHTML("afterBegin","<h1> 在文本前容器内插入内容1</h1>"); 
dom1.insertAdjacentHTML("beforeEnd","<h2> 在文本后容器内插入内容2</h2>"); 
dom1.insertAdjacentHTML("beforeBegin","<h4> 在文本前容器外插入内容4</h1>"); 
dom1.insertAdjacentHTML("afterEnd","<h5> 在文本后容器外插入内容5</h2>");

读取也就是选择器的功能实现

//直接选择器
var dom1=document.getElementById("dom1");
var dom1=document.querySelector("#dom1");
var matches = document.querySelectorAll("div.note, div.alert");
var div=document.getElementsByClassName(".div");
var div=document.getElementsByTagName("div");
//节点关系选择器
var divC=div.innerHTML;//内部
var divC=div.outerHTML;//整个节点
var divS=div.children;//子节点集合
var divS=div.firstChild;//第一个子节点,如果有空格返回#text
var divS=div.lastChild;//最后一个子节点,如果有空格返回#text
var divS=div.nextSibling;//下一个节点,如果有空格返回#text
var divS=div.prvSibling;//前一个节点,如果有空格返回#text
var divS=div.parentNode;//父节点
//节点集合
var form=document.forms[0];//表单集合
var img=document.images[0];//图片集合
var img=document.links[0];//所有带连接的a节点

然后是更新,我理解的是替换,常用实现

parent.replaceChild(div,dom1.querySelector("p"));
dom1.innerHTML="hhh";
dom1.innerText="999";

最后是删除的实现

parent.removeChild(dom1.querySelector("p"));
dom1.innerHTML="";
dom1.innerText="";

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
详解js闭包
Sep 02 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
Bootstrap学习笔记之环境配置(1)
Dec 07 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
ReactNative列表ListView的用法
Aug 02 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
Dec 17 Javascript
Moment.js实现多个同时倒计时
Aug 26 #Javascript
vue获取验证码倒计时组件
Aug 26 #Javascript
seajs和requirejs模块化简单案例分析
Aug 26 #Javascript
JavaScript实现身份证验证代码实例
Aug 26 #Javascript
基于vue、react实现倒计时效果
Aug 26 #Javascript
tweenjs缓动算法的使用实例分析
Aug 26 #Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 #Javascript
You might like
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php数组去除空值函数分享
2015/02/02 PHP
php处理复杂xml数据示例
2016/07/11 PHP
Prototype String对象 学习
2009/07/19 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python中的多重装饰器
2015/04/11 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
python匿名函数的使用方法解析
2019/10/10 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
explicit和implicit的含义
2012/11/15 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
读群众路线的心得体会
2014/09/03 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
linux目录管理方法介绍
2022/06/01 Servers