简单实现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 相关文章推荐
JS解密入门之凭直觉解
Jun 25 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
详解JavaScript ES6中的Generator
Jul 28 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
JS伪继承prototype实现方法示例
Jun 20 Javascript
Vue父组件如何获取子组件中的变量
Jul 24 Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
解决vant中 tab栏遇到的坑 van-tabs
Nov 04 Javascript
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
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
咖啡语言
2021/03/03 咖啡文化
php的计数器程序
2006/10/09 PHP
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
htm调用JS代码
2007/03/15 Javascript
js数组操作学习总结
2013/11/04 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Javascript中神奇的this
2016/01/20 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
使用Python的内建模块collections的教程
2015/04/28 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python用户管理系统
2018/03/13 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
中学老师的自我评价
2013/11/07 职场文书
个人校本研修方案
2014/05/26 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
庭外和解协议书
2016/03/23 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers