简单实现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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
javascript清空table表格的方法
May 14 Javascript
Javascript中With语句用法实例
May 14 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
vue 注册组件的使用详解
May 05 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
May 09 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
jquery自定义组件实例详解
Dec 31 jQuery
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
php 获取客户端的真实ip
2009/11/30 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
日期 时间js控件
2009/05/07 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
优秀本科生求职推荐信
2014/02/24 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2014年发展党员工作总结
2014/11/12 职场文书