原生JS--增删改查

  • 字符串的增删改查
  • 数组的增删改查
  • 对象(属性)的增删改查
  • DOM的增删改查
    • 获取元素
    • 获取元素位置和大小
    • 获取元素CSS属性
      • 元素的类class增删改查:
    • 遍历DOM节点树
    • 遍历元素节点树
    • 节点的增删改查

字符串的增删改查

(不改变原字符串)


  • 连字符“+”/Str.concat()


  • Str.substr(startIndex,length),该方法W3C不建议使用
    Str.substring(startIndex,endIndex),传入非负整数参数
    Str.trim(),删除字符串间空格,ES6
    Str.trimLeft()/Str.trimRight(),左/右空格

JavaScript字符串“三剑客”


  • replace(RegExp,str),替换
    slice(startIndex,endIndex),截取
    substr(startIndex,length)
    substring(startIndex,endIndex)
    split(分隔符,返回的数组中的项个数),分割,返回数组

Arr.join()和Str.split()


  • indexOf()
    lastIndexOf()
    match()
    search()

正则:EX.test(str),返回true/false;
Str.match(EX),返回数组/null,index属性,input属性;Str.search(EX),返回匹配起始下标/-1,只匹配第一个;

简述test、match、replace和search的用法

  • 比较
    localeCompare()

  • 转化
    toString()
    big(),大号字体
    small(),小号字体
    blod(),粗体
    italics(),斜体
    toUpperCase(),大写
    toLocalUpperCase()
    toLowerCase(),小写
    toLocalLowerCase()
    sup(),上标
    sub(),下标
    strike(),删除线
    blink(),闪动
    fixed(),打印机文本
    fontsize(),指定字体大小
    fontcolor(),指定字体颜色
    link(),链接字样

数组的增删改查


  • Array.push()/unshift(),返回数组长度
    如:Arr.push(1,2,3)
  • 删除
    Array.pop()/shift(),返回被删的元素
  • 改(增、删)
    Array.splice(startIndex,length,addArr,…addArr),剪/接/替换返回被删数组

splice(0,0,addArr),splice(length-1,1),splice(index,0,addArr)

  • 查 (不改变原数组)
    indexOf(obj,startIndex)从头向尾查,lastIndexOf(obj,startIndex)从尾向头查
    找不到时,返回-1

  • 复制数组(不改变原数组)
    Array.slice(startIndex,endIndex),剪切返回被切数组,原数组不变
    slice(0),concat(arr,…arr)拼接

  • 转化(不改变原数组)
    toString(),逗号隔开字符串
    join("+"),指定连接符隔开转字符串

  • 排序
    reverse(),倒序/反转返回改变数组
    sort(),按规则排序

sort()排序相关:

对象(属性)的增删改查

  • 增(创建)
    三种:
  1. 通过new Object()调用内部构造函数constructor;
  2. 声明式定义对象,var/let/const= {key,val};
  3. 自定义构建函数,var/let = fn(obj.att),工厂方法创建对象;

构造函数是专门用来创建对象的函数;
增(属性):obj.att=val或obj[att]=val;方括号[]内可动态传入属性;


  • delete obj.att

  • 改(重新赋值/引用)

  • 查(读取对象的属性)
    att in obj,返回true/false;
    obj.hasOwnProperty(att),返回true/false;

DOM的增删改查

获取元素

document.getElementById();通过ID获取
document.getElementsByClassName();通过类名获取
document.getElementsByName();通过name属性获取
document.getElementsByTagName();通过元素标签获取

以下为静态获取,是一个拷贝,无法更新获取元素里的数据:
document.querySelector();通过CSS选择符获取(第一个)
document.querySelectorAll();(所有)

获取元素位置和大小

clientHeight/clientWidth:元素的内尺寸,元素内容+padding;
offsetHeight/offsetWidth:元素的外尺寸,元素内容+padding+border;
offsetLeft/offsetTop:元素的左上角与已定位的父容器左上角的距离;
scrollHeight/scrollWidth:(可见区域或浏览器出现滚动条时)元素内容的总高度/宽度,元素尺寸;
scrollTop/scrollLeft:滚动条位置,可见位置;
El.getBoundingClientRect():返回元素与页面的左上角(left,top),右下角(right,bottom)坐标四个值;
screenTop/screenLeft:元素(?)

event.screenX/event.screenY:鼠标点击页面坐标;
event.clientX/event.clientY:鼠标点击浏览器坐标;
event.offsetX/event.offsetY:鼠标点击元素位置;

如果是只读属性,每次访问都需要重新计算;

获取元素CSS属性

document.getComputedStyle(“e”),获取e所有的计算后的CSS属性,只读属性,IE不支持;
e.style.property= value,设置元素css样式属性;

e.setAttribute(attr,value);设置元素自身属性;

元素的类class增删改查:

e.classList;查看所有类名
e.classList.add(“CLASS1”,“CLASS2”);增加
e.classList.remove(“CLASS1”,“CLASS2”);删除
e.classList.contains(“CLASS”);是否有类名CLASS
e.classList.toggle(“CLASS”,是否强制t/f);切换添加/移除类名,返回true/false

遍历DOM节点树

parentNode获取父节点
childNodes获取子节点
firstChild获取第一子节点
lastChild获取最后子节点
nextSibling获取后一个弟节点
previousSibiling获取前一个兄节点

hasChildNodes()方法,是否子节点
innerText获取节点下文本
textContent获取节点下所有文本

节点类型nodeType属性=>
element类型(元素节点):1
text类型(文本节点):3
comment类型(注释节点):8
document类型(document节点):9

遍历元素节点树

parentElement获取元素父节点
children获取元素子节点,(除了这,其他IE9以下不兼容)
firstElementChild获取元素第一个子节点
lastElementChild获取元素最后子节点
nextElementSibling获取后一个兄弟元素节点
previousElementSibling获取前一个兄弟元素节点

节点的增删改查

  • 增(三部曲):
  1. 创建节点:var e= document.createTextNode(“element”);
    或:var e = document.createElement(“div”);
  2. 获取目标节点:oDiv
  3. 添加节点:内部子节点末尾添加oDiv.appendChild(e);
    内部指定子节点之前插入oDiv.insertBefore(e,where);

一次创建的节点不会重复增加;多次使用需封装函数,重复创建节点;反向妙用:移动JS新建的节点或HTML原有节点!
移动子节点oDiv.parentNode.appendChild("oDiv"),移动原有oDiv节点到末尾;

oDiv.innerHTML = "<input type="text" placeholder="XXX">";

  • 替换子节点
    oldChild.parentNode.replaceChild(newChild,oldChild)

  • 克隆节点
    oDiv1 = oDiv.cloneNode(true);
    oDiv.appendChild(oDiv1);

  • 删除子节点
    oDiv.parentNode.removeChild(oDiv);

原生JS--增删改查相关推荐

  1. c/s原生实现增删改查 在线点餐系统

    c/s原生实现增删改查较麻烦 建议使用Apache(阿帕奇)完成 需要要入mysql数据库包 界面代码: package javaone;import java.io.File; import jav ...

  2. mysql 原生 添加数据_手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  3. 原生YII2 增删改查的一些操作(非ActiveRecord)

    1.添加数据 如下,使用insert方法:t_admin_user为数据表名..其他的是属性.. $num = Yii::$app->db->createCommand()->ins ...

  4. Angular JS 增删改查(弹框修改)

    input{ border-radius: 5px; } ul{ list-style: none; } .tip{ color: red; } .aquamarine{ background-col ...

  5. Python操纵Mysql数据库的三种方法,实现增删改查

    目录 这里使用的数据库是关系型数据库Mysql 一.首先,需要安装两个库 二.3种实现增删改查的方法 1.  使用原生语句进行增删改查 2. 使用表结构进行增删改查 3. 使用集成ORM类操纵数据库, ...

  6. SQL语句增删改查公司-员工3表典型案例

    基础原生SQL增删改查,一般公司业务表,必知必会基础流程! 程序开发之大法,从数据库开始,不管是sqlserver,Oracle数据库还是其他MySQL等等的数据库.都是从写SQL语句开始.需要您必知 ...

  7. 对表格实现修改查询html,【原生】js实现表格的增删改查

    说在前面的,写给小白白的,大神请绕道~ 今天用原生js写一下动态表格的增删改查,主要是熟悉一下js的DOM操作. 首先,做一个表格,用来显示提交的数据,如图下: 此处,我添加了编号.姓名.密码.生日. ...

  8. 数组的增删改查原理(原生JS)

    数组的增删改查(原生JS) var Arr = [1, 2, 3, 4, 5, 6]; 查 //查 直接遍历数组,这里分别遍历一维数组和二位数组:// 一维数组for (var i = 0; i &l ...

  9. vue后台增删改查_Vue 原生实现商城购物车增删改查

    业务分析: 1 .整个页面分为两种状态: 正常状态:选中商品显示总价,可结算 编辑状态:选中商品增删改查,可删除 页面状态直接影响底部栏的变化 2. 商品,店铺,全选两种状态都可三级联动 3. 编辑状 ...

  10. mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...

    在目前容近对端手近对端手近对端手近对端手近我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于 ...

最新文章

  1. 文轩在线:如何让IT部门成为企业的价值中心
  2. linux目录结构及常用命令
  3. opencv三维重建_基于OpenCV和C++的多视图三维重建
  4. HDU6089 恐怖分子(变形线段树)
  5. nginx的限流配置
  6. google+stackoverflow_解决stackOverflow打开慢的问题
  7. 支撑位和压力位怎么看是什么意思?
  8. 使用自己的数据训练Yolov4-tiny模型,并用tensorrt运行(配置github host、编译安装opencv4.1.1+contrib和darknet、制作数据集、训练全流程)
  9. Bailian4017 爬楼梯(POJ NOI0202-3089)【递推】
  10. ORACLE11g升级19c,报ORA-01017
  11. 搭建个人云盘保姆级教程
  12. 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
  13. 大数据技术领域介绍及学习方法和发展规划
  14. 用cd 命令进入和退出D盘文件夹的操作步骤。
  15. 独家揭秘:阿里小程序的一云多端!看这篇就够了!
  16. To the Greatness of Small
  17. 华为存储S2600V3操作指导书
  18. 基于Android平台的三维实时全景地图设计与实现(二)
  19. Activity的四种状态
  20. Python编程:sys模块

热门文章

  1. 移动硬盘拷贝linux文件,Linux(CentOS)挂载U盘、移动硬盘以及文件拷贝、备份
  2. php 索引数组应用实例,php数字索引数组实例用法总结
  3. 物联网 | HASS+MQTT+树莓派室内监测小型物联网系统
  4. _Generic示例
  5. Vijos 1836题:HYS与七夕节大作战
  6. Altera新手教程
  7. QWT坐标刻度设置时的2个细节
  8. SDNU 1221
  9. Jenkins邮箱配置过程(qq + 163)
  10. 记一个微商城促销方案实现流程图