简单实现JS对dom操作封装


Posted in Javascript onDecember 02, 2015

这篇文章主要介绍了JS简单实现对dom操作封装,下面就直接上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js</title>
</head>
<body>
  <div id="aa">测试</div>
</body>
<script type="text/javascript">
//duquery
(function(w){//定义立即执行函数,传入全局对象window  
  function duquery(id){//定义函数,实现去new的操作,  
    function Duquery(id){//定义类
      this.ele=document.getElementById(id);//id查找    
      return this;//返回对象
    };
    Duquery.prototype.html=function(val){//利用原型添加设置html的方法
      this.ele.innerHTML=val;
      return this;//返回对象,执行后可链式操作
    };
    Duquery.prototype.attr=function(key,val){//添加设置属性的方法
      this.ele.setAttribute(key,val);
      return this;
    };
    Duquery.prototype.css=function(key,val){//添加设置样式的方法
      this.ele.style[key]=val;
      return this;
    };
    Duquery.prototype.on=function(event,fun){
      this.ele.addEventListener(event,fun,false);
      return this;
    };  
    return new Duquery(id);//去new处理,返回实例对象
  };
  
  duquery.wait=function(time,fun){//添加延时静态方法,可通过函数名直接使用
    setTimeout(fun,time);
  };  
  duquery.each=function(arr,callback){//添加遍历迭代静态方法
    for(var key in arr){
      callback(key,arr[key]);
    };
  };  
  w.$$=w.duquery=duquery;//类追加到全局对象自定义属性上,可直接调用
  
})(window);
//code
window.onload=function(){
  //类的使用和操作
  $$("aa").attr("bb","456").css("height","200px");
  $$.wait(5000,function(){$$("aa").html("好的")});
  $$("aa").on("click",function(){
    $$("aa").html("事件").css("color","#ffa");
  });
  $$.each([1,2,3,4,5,6],function(index,val){
    if(val==3){
      alert(val);
    }else{
    };
  });
};
</script>
</html>

再为大家分享一个js常用DOM操作,代码如下

<html>
 
<head></head>
<body>
 
<form id="myform">
<input type="text" value="获取id" id="getId" >
 
<input type="button" value="huhu" id="getId1" >
<span>努力学习</span>
 
</form>
 
<script>
//DOM 对象方法
 
//getElementById返回带有指定 ID 的元素
 
/*var byid = document.getElementById("getId");
alert(byid.value);      //获取id
 
//getElementsByTagName返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)
 
var tagname = document.getElementsByTagName("input");
alert(tagname[0].value);    //获取id
 
//createElement创建元素节点
 
var myform = document.getElementById("myform");
var e = document.createElement("input");    //创建input元素
 
e.type="button";                //给input的type定义值
e.value="嘻嘻哈哈";                //给input的value定义值
 
//appendChild() 把新的子节点添加到指定节点
 
myform.appendChild(e);              //往form里添加创建好的input表单
 
//insertBefore() 在指定的子节点前面插入新的子节点
 
document.body.insertBefore(e,myform);      //把input添加到form前面            
 
//createAttribute()创建属性节点
 
var att=document.createAttribute("class");
att.value="democlass";
 
//setAttributeNode()方法添加新的属性节点
 
document.getElementsByTagName("input")[0].setAttributeNode(att);
 
//createElement创建元素节点
 
var newel = document.createElement("p");
 
//createTextNode() 方法创建新的文本节点
 
newtext=document.createTextNode('xixihaha');
 
//appendChild() 把新的子节点添加到指定节点
 
newel.appendChild(newtext);
 
//appendChild() 把新的子节点添加到指定节点
 
myform.appendChild(newel);
 
// setAttribute() 可以在属性不存在的情况下创建新的属性,我们可以使用这个方法来创建新属性
 
x=document.getElementsByTagName("input");
x[0].setAttribute("asdasd","first");
 
//replaceChild() 方法用于替换节点
 
//第一个参数是新的节点
//第二个参数是旧的节点(要被替换掉的节点)
 
var y1=document.getElementsByTagName("input")[1];
var y2=document.getElementsByTagName("input")[2];
 
myform.replaceChild(y2,y1);
 
//removeChild() 方法删除指定的节点
 
//当已定位需要删除的节点时,就可以通过使用 parentNode 属性和 removeChild() 方法来删除此节点
var span1=document.getElementsByTagName("span")[0];
 
span1.parentNode.removeChild(span1);
*/
 
</script>
 
</body>
</html>

以上就是js针对DOM 的相关常用操作,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
Node.js实现文件上传的示例
Jun 28 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
Vue中正确使用jQuery的方法
Oct 30 jQuery
JS学习笔记之数组去重实现方法小结
May 29 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
JS中的模糊查询功能
Dec 08 Javascript
微信小程序实现电影App导航和轮播
Nov 30 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 #Javascript
JS折半插入排序算法实例
Dec 02 #Javascript
如何动态加载外部Javascript文件
Dec 02 #Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 #Javascript
JavaScript如何禁止Backspace键
Dec 02 #Javascript
js文本框输入内容智能提示效果
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 #Javascript
You might like
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
python装饰器decorator介绍
2014/11/21 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
详解Python 函数如何重载?
2019/04/23 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
Python3远程监控程序的实现方法
2019/07/15 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
体育专业求职信
2014/07/16 职场文书
2014年业务工作总结
2014/11/17 职场文书
2014全年工作总结
2014/11/27 职场文书
恰同学少年观后感
2015/06/08 职场文书
禁毒心得体会范文
2016/01/15 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers