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

代码如下:

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;
}
};

获得class:

function getByClass(oParent,sClass){
if(oParent.getElementsByClassName){
return oParent.getElementsByClassName(sClass);
}else{
var allEle = oParent.getElementsByTagName("*"),
len = allEle.length,
reg = new RegExp('(\\b)' + sClass + '(\\b)','i'),
allReuslt = [],
i;
for( i=0; i < len; i ++){
if(allEle[i].className.search(reg) != -1){
allReuslt.push(allEle[i]);
}
}
return allReuslt;
}
}

获取样式:

function getStyle(ele,attr){
var result = '';
if(document.defaultView.getComputedStyle){
result = document.defaultView.getComputedStyle(ele,false)[attr];
}else{
result = ele.currentStyle[attr];
}
if(attr == 'opacity'){
return Math.round(parseFloat(result)*100);
}else{
return parseInt(result);
}
}

[笔记]原生JS实现的DOM操作笔记的更多相关文章

  1. 原生JavaScript常用的DOM操作

    之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或 ...

  2. 原生js快速渲染dom节点

    function renderDom(str){ var _div = document.createElement('div'); _div.innerHTML = str; var dom_tem ...

  3. js中的DOM操作汇总

    一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...

  4. javascript dom编程艺术笔记第三章:DOM操作的5个基本方法

    JavaScript的 DOM操作,主要是对DOM这三个字母中D.O.M的操作.D代表的是document(文档),即我们可以使用javascript对文档进行操作,O代表的是object(对象),对 ...

  5. javascript学习笔记(四):DOM操作HTML

    当网页被加载时,浏览器会创建页面的文档对象模型Document Object Model,简称DOM Dom操作html 1:改变页面中所有HTML元素 2:改变页面中所有HTML属性 3:改变页面中 ...

  6. JS核心之DOM操作 下

    目录: 1.节点类型之Document类型 2.节点类型之Element类型 3.节点类型之Text类型 4.综合小示例 -- 动态添加外部样式文件 5.查找元素的扩展方法 接上篇,我们先来看常用的三 ...

  7. js练习【DOM操作】

    完成效果: 演示地址:http://codepen.io/anon/pen/jPbYWq HTML: <!DOCTYPE html> <html lang="en" ...

  8. 原生js学习 选择dom

    连bootstrap5 都抛弃jquery了,重新使用原生js来写,所以最近在学习原生js. 一.选择dom元素: id let sure=document.getElementById('sure' ...

  9. 【2017-03-28】JS基础、DOM操作

    一.JS基础 1.javascript功能 ⑴进行数据运算 ⑵控制浏览器功能 ⑶控制元素的属性.样式.内容 2.javascript位置和格式 可以放在html页的任意位置,也可以创建一个以js结尾的 ...

随机推荐

  1. Vs 发布编译问题

    如果勾选了预编译 发布后的目录会有PrecompiledApp.config文件,bin目录中会有App_global.asax.dll和App_global.asax.compiled文件 不勾选预 ...

  2. React-Native的基本控件属性方法,对React-Native的学习,从熟悉基本控件开始。

    对React-Native的学习,从熟悉基本控件开始. View 属性方法 序号 名称 属性Or方法 类型 说明 1 accessibilityLabel 属性 string   2 accessib ...

  3. github pages + Hexo + node.js 搭建属于自己的个人博客网站

     之前我写过一篇用Github实现个人主页的博客:https://www.cnblogs.com/tu-0718/p/8081288.html   后来看到某个大佬写的文章:[5分钟 0元搭建个人独立 ...

  4. [Swift]LeetCode244.最短单词距离 II $ Shortest Word Distance II

    This is a follow up of Shortest Word Distance. The only difference is now you are given the list of ...

  5. Python中面向对象的概念(科普)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  6. npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6

    cnpm安装的时候出现的一个问题. 使用npm install cnpm -g --registry=https://registry.npm.taobao.org命令的时候就会出现下图中的WARN. ...

  7. 网络协议 7 - UDP 协议:性善碰到城会玩

        网络协议五步登天路,我们一路迈过了物理层.链路层,今天终于到了传输层.从这一层开始,很多知识应该都是服务端开发必备的知识了,今天我们就一起来梳理下.     其实,讲到 UDP,就少不了 TC ...

  8. WebSocket(5)---多人聊天系统

    多人聊天系统 功能说明:多人聊天系统,主要功能点: 1.当你登陆成功后,可以看到所有在线用户(实际开发可以通过redis实现,我这边仅仅用map集合) 2.实现群聊功能,我发送消息,大家都可以看到. ...

  9. Session知识点

    知识点概要    - Session    - CSRF    - Model操作    - Form验证(ModelForm)    - 中间件    - 缓存    - 信号 内容详细: 1. S ...

  10. nginx系列 2 概述

    一. nginx功能概述 nginx 提供的基本功能服务归纳为:基本HTTP服务.高级HTTTP服务.邮件代理服务.TCP/UDP 代理服务等四大类. (1) Nginx提供基本HTTP服务,可以作为 ...