简单实现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 相关文章推荐
javascript判断单选框或复选框是否选中方法集锦
Apr 04 Javascript
Jquery下判断Id是否存在的代码
Jan 06 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
推荐6款基于jQuery实现图片效果插件
Dec 07 Javascript
全国省市二级联动下拉菜单 js版
May 10 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
jquery.masonry瀑布流效果
May 25 jQuery
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 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
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
详解node中创建服务进程
2017/05/09 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
numpy数组广播的机制
2019/07/12 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
写自荐信的注意事项
2014/03/09 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android