分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

原生JS实现的DOM操作笔记(草稿整理)

发布时间:2023-09-06 01:45责任编辑:白小东关键词:DOM

原生JS实现的DOM一系列操作参考:

  • 原生JavaScript封装DOM库
  • siblings: 原生JS-查找相邻的元素-siblings方法的实现
  • addClass,removeClass,hasClass,toggleClass:原生js添加删除class
  • 原生js添加删除class

代码如下:

var dom = { ???????/** 功能说明:匹配元素是否含有指定class ????* @param el 指定的DOM元素 ????* @param className 匹配的class名 ????* */ ???hasClass:function(el,className){ ?????????return el.className.match(new RegExp(‘(\\s|^)‘ + className + ‘(\\s|$)‘)); ????}, ???????/** 功能说明:给指定DOM元素添加class ????* @param el 指定的DOM元素 ????* @param className 添加的class名 ????* */ ???addClass:function(el,className){ ???????if(!this.hasClass(el,className)){ ???????????el.className += " " + className; ???????} ???????return el; ???}, ???????/** 功能说明:给指定DOM元素移除class ????* @param el 指定的DOM元素 ????* @param className 移除的class名 ????* */ ???removeClass:function(el,className){ ???????if(this.hasClass(el,className)){ ???????????var reg = new RegExp(‘(\\s|^)‘ + className +‘(\\s|$)‘); ???????????el.className = el.className.replace(reg,‘ ‘) ???????} ???????return el; ???}, ???????/** 功能说明:给指定的DOM元素添加或者删除class ????* @param el 指定的DOM元素 ????* @parm className 添加或删除的class名 ????* */ ???toggleClass:function(el,className){ ???????if(this.hasClass(el,className)){ ???????????this.removeClass(el,className); ???????}else{ ???????????this.addClass(el,className); ???????} ???????return el; ???}, ???????/** 功能说明:获取当前元素的兄弟节点 ????* @param el 当前DOM元素 ????* */ ???siblings:function(el){ ???????var matched = []; //存放兄弟节点 ???????var n = (el.parentNode || {}).firstChild; ???????for(; n; n = n.nextSibling){ ???????????if(n.nodeType === 1 && n !== el){ ???????????????matched.push(n); ???????????} ???????} ???????return matched; ???}};

原生JS实现的DOM操作笔记(草稿整理)

原文地址:https://www.cnblogs.com/moqiutao/p/8534779.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved